SShortSingh.

Programming

0
ProgrammingDEV Community ·

IBM i Developers Share RPGLE Pattern to Automate User Access Provisioning

A developer has published a production-tested RPGLE pattern on DEV Community that automates user access provisioning on IBM i without middleware or external servers. The system works by reading JSON request files dropped into an IFS inbox directory, which a scheduled RPGLE job periodically scans and processes using SQL and IBM's QSYS2 system views. Each request specifies a target user and a model user, and the program clones the model's profile and entitlements to the new account using a CL wrapper around the CPYUSRPRF command. The solution uses RPG's DATA-INTO opcode with a YAJL-based parser to deserialize JSON directly into data structures, eliminating manual token parsing. An audit trail is maintained by writing history records and emitting JSON audit events, addressing a common compliance gap in manual access provisioning workflows.

0
ProgrammingDEV Community ·

SQL JOIN Types Explained: Inner, Left, Right, Full Outer, and Self Joins

A SQL JOIN combines rows from two or more tables based on a related column, eliminating the need to run separate queries and match results manually. An INNER JOIN returns only the rows where there is a matching value in both tables. A LEFT JOIN returns all rows from the left table along with matching rows from the right table, filling unmatched columns with null values. A FULL OUTER JOIN returns all rows from all involved tables, useful when a complete view of combined data is needed. A SELF JOIN allows a table to be joined with itself, useful for comparing rows within the same dataset.

0
ProgrammingDEV Community ·

Cloudflare's AI Crawler Policy: How to Block Scrapers Without Hurting SEO

Cloudflare introduced its 'Accountable Mixed-Use AI Crawlers' policy in March 2024, automatically blocking crawlers that do not declare their purpose via HTTP headers. The policy has gained traction amid rising data-privacy regulations such as GDPR and CCPA, which carry fines of up to 4% of annual revenue for misuse of data. Platforms including Medium, Substack, and YouTube have reported a 73% surge in content-removal requests linked to AI training activity. Website owners can protect their content by configuring robots.txt rules, adding custom firewall rules in the Cloudflare dashboard, and enabling JavaScript challenges for sensitive pages. The key challenge is distinguishing legitimate search-engine bots like Googlebot and Bingbot from unauthorized AI scrapers to avoid unintended drops in organic search traffic.

0
ProgrammingDEV Community ·

Developer Builds Android-Resilient PWA Heartbeat System for Edge AI Agents

A developer building HormigasAIS, a lightweight edge architecture for constrained devices, has shared progress on a WebSocket client designed to maintain stable connections on real Android hardware. The system uses a custom binary protocol called LBH, which sends heartbeat and telemetry frames to a local Edge Node to keep communication channels alive. A key challenge was Android's aggressive background process management, which can silently kill WebSocket connections without triggering a standard close event. To address this, the developer added a visibility-change listener that immediately checks and restores the connection when a user returns to the app. Testing the installed PWA in split-screen mode confirmed that the socket survived screen locks and backgrounding, with heartbeat acknowledgements continuing to appear in the Edge Node logs.

0
ProgrammingDEV Community ·

Cloudflare Adds One-Click Tool to Block AI Scrapers While Preserving SEO

Cloudflare introduced a new bot category called 'Accountable Mixed-Use AI Crawlers' in June 2024, enabling website owners to block AI data-harvesting bots with a single click. Unlike traditional search engine crawlers such as Googlebot and Bingbot, AI crawlers often ignore robots.txt rules and can send hundreds of requests per second to extract text, images, and metadata for model training. Cloudflare's Firewall Tools panel allows users to set a default 'Block' action for this category while whitelisting legitimate search bots to protect organic search rankings. Website owners can also write custom firewall rules targeting specific user agents like GPTBot, Claude, or Bard, or opt for a softer JavaScript Challenge approach instead of an outright block. The move aligns with growing legal pressure under the EU's GDPR and DSM Directive, as well as the US DMCA, both of which impose penalties for unauthorized reuse of protected content.

0
ProgrammingDEV Community ·

AI Pentesting Agent Found Admin GitHub Token in Baseten's Public Docker Registry in 25 Minutes

Security firm Strix used its autonomous AI pentesting agent to scan inference provider Baseten's public-facing infrastructure without credentials or source code access. Within 25 minutes, the agent discovered a live GitHub personal access token embedded in the build history of a Docker image stored in a publicly accessible Harbor container registry. The token, belonging to a bot account called basetenbot, had been exposed since March 2023 and granted admin and push access to Baseten's main product repository, its GitOps repo managing production clusters, and its Homebrew tap. Strix reported the vulnerability on July 13, and Baseten's security team made the registry private, confirmed the issue as critical, and rotated the token by the following afternoon. The root cause was a common Dockerfile pattern where a GitHub token passed as a build argument gets expanded into plain text and persisted in the image's build history.

0
ProgrammingDEV Community ·

How One Team Containerized Omniget to Fix Silent Pipeline Failures at 3 AM

A development team discovered at 3:14 AM that an uncontained media extraction worker had silently spawned hundreds of zombie processes, exhausting file descriptors and stalling their downstream AI pipeline. Over two weeks, the team evaluated Omniget, an open-source media extraction toolkit, as an automated ingestion bridge for their self-hosted LLM analysis stack. They packaged Omniget inside a hardened Docker container using Alpine Linux, an unprivileged service user, and the tini init process to reliably reap zombie subprocesses. The deployment enforces strict memory limits, drops all Linux capabilities, and isolates the worker on a dedicated network tier to prevent host filesystem contamination. The team concluded that running media extraction binaries directly on a host environment poses serious operational risks without containerization and process containment.

0
ProgrammingDEV Community ·

SafeLine WAF vs Wordfence: Choosing the Right Web Application Firewall

Wordfence is a widely used WordPress security plugin that operates within PHP, offering deep knowledge of WordPress-specific threats like brute-force logins and malicious plugins. SafeLine, by contrast, is a self-hosted, stack-level WAF that sits in front of the web server and inspects all HTTP traffic before it reaches any application. While Wordfence is limited to WordPress environments, SafeLine can protect multiple web apps simultaneously and is harder to bypass since it does not rely on the application being healthy. Security experts suggest that running both tools together — SafeLine at the proxy layer and Wordfence inside WordPress — provides a stronger defense-in-depth approach. SafeLine Community Edition is available for free, whereas Wordfence's full feature set requires a paid subscription.

0
ProgrammingDEV Community ·

What Is Amazon Neptune? AWS's Managed Graph Database Explained

Amazon Neptune is a fully managed graph database service from AWS, built for applications that rely heavily on connected data and complex relationships. Unlike traditional relational databases that store data in rows and columns, Neptune uses nodes, edges, and properties to represent entities and their relationships. This makes it well-suited for use cases such as social networks, recommendation engines, fraud detection, and knowledge graphs, where querying connections is central to the application. Neptune supports multiple query languages, including Gremlin and openCypher for property graphs, and SPARQL for RDF graphs. Its graph-oriented model allows developers to map real-world relationships directly, simplifying queries that would otherwise require multiple joins across many tables.

0
ProgrammingHacker News ·

Internet Archive Spotlights Negativland and the Legacy of Culture Jamming

The Internet Archive published a blog post on September 11, 2026, exploring the work of Negativland, the experimental art collective known for pioneering culture jamming. The piece examines how the group built new creative works by remixing and repurposing existing media and cultural artifacts. Culture jamming, as practiced by Negativland, challenges mainstream media and consumer culture through subversive reuse of copyrighted and commercial material. The post appeared on the Archive's blog and generated modest engagement on Hacker News, attracting 13 points and 4 comments.

0
ProgrammingDEV Community ·

Developer Lost 48 Hours Debugging CSV Error Caused by Missing UTF-8 Locale on Server

A developer spent nearly two days troubleshooting a UnicodeDecodeError in a Python script that read a UTF-8 CSV file, only to find the file itself was never the problem. The script passed all local tests because the developer's machine had PYTHONUTF8=1 set in their shell config and a sitecustomize.py enabling UTF-8 mode by default. The clean Linux server lacked both settings, causing Python to fall back to the POSIX locale, which defaults to ASCII encoding in practice. The root cause was finally identified by stripping the local environment variables to replicate the server's bare conditions. The fix required explicitly setting encoding='utf-8' on every file open call rather than relying on system-level locale defaults.

0
ProgrammingDEV Community ·

How to Freeze JSON Serializer Output Before Refactoring Call Sites

Codebases that scatter json.dumps calls with inconsistent flags risk silent wire-format changes when those calls are later consolidated into a single helper function. Parameters like ensure_ascii, sort_keys, separators, and custom default handlers each affect the exact bytes produced, and downstream systems such as gateways and log processors may break without any test failure. The recommended approach is to pin the exact UTF-8 bytes output by every distinct dumps call site before extracting a shared serializer. Pins should record the byte output, the exception type raised on invalid input, and whether a default handler was present — not just parsed Python dict equality. Once byte-level fixtures are committed and passing, a single serializer function can be safely extracted without merging incompatible serialization dialects.

0
ProgrammingDEV Community ·

Why Your Session Cookie Acts Like a Password After You Log In

Once a user logs in, most web applications stop using the password for subsequent requests and instead rely on a session identifier stored in a browser cookie. The server creates a session after verifying credentials, assigns it a unique ID, and uses that ID to recognize the user on every future request. Because the browser sends only the session ID — not the password — an attacker who obtains that identifier can potentially impersonate the user without ever knowing their password. This makes session IDs function as temporary credentials, and their theft can lead to full account compromise. Developers are advised to generate session IDs using cryptographically secure methods and to understand key cookie security settings to reduce this risk.

0
ProgrammingDEV Community ·

Google Launches Official MCP Server Letting AI Query Analytics Data Directly

Google has released an official Model Context Protocol (MCP) server for Google Analytics, hosted under the googleanalytics GitHub organization and licensed under Apache-2.0. The tool allows AI assistants to query Analytics data in real time without requiring users to export CSV reports manually. It offers tools for account summaries, standard and funnel reports, and real-time user data, with read-only access enforced via analytics.readonly credentials. The project, created in July 2025 and now on version 0.7.0, records over 73,000 downloads per month despite having around 3,200 GitHub stars, suggesting far wider adoption than star counts indicate. Google's move follows MCP becoming a vendor-neutral open standard in December 2025 after Anthropic donated it to the Linux Foundation-backed Agentic AI Foundation.

0
ProgrammingDEV Community ·

How to Diagnose Conflicting IP Reputation Scores Before Replacing a Proxy

When two IP reputation providers return contradicting scores, the problem may lie in the lookup itself rather than the proxy being tested. Issues such as expired API credentials, cached results, HTTP errors, or failed parsers can produce misleading data, making proxy replacement an unnecessary expense. Reputation APIs and destination services operate as separate systems, so a rejected API request does not confirm that the target service has blocked the IP. Different providers also measure different things — AbuseIPDB tracks user reports while IP2Proxy uses fraud-risk and threat fields — meaning score disagreement reflects differing methodologies, not clear-cut answers. Analysts are advised to record HTTP status, timestamps, and cache age alongside each result, and to examine abuse report recency and data-center classification before drawing conclusions.

0
ProgrammingDEV Community ·

AWS Lambda Warm Starts Can Introduce Hard-to-Catch Bugs in Production

AWS Lambda reuses execution environments across invocations in what is known as a warm start, which improves speed and reduces cost by avoiding repeated initialisation. While placing clients like DynamoDB outside the handler is a recommended practice for reusing connections, it also means mutable variables and cached values from a previous invocation persist into the next. Code that assumes a clean slate on every run will behave correctly during manual testing — which typically triggers cold starts — but may produce subtle bugs under real production traffic. The root issue is that warm starts skip initialisation entirely and jump straight to the handler, carrying over any leftover state. The general guidance is to keep shared clients and connections outside the handler, while ensuring any request-specific or time-sensitive values are initialised fresh inside it.

0
ProgrammingHacker News ·

Cloudflare Offers Tool to Block AI Training Crawlers Without Hiding from Search

Cloudflare has introduced a new feature allowing website owners to block AI training crawlers while remaining visible to traditional search engines. The tool addresses a growing concern among publishers who want to prevent their content from being used to train AI models without losing search discoverability. Cloudflare distinguishes between crawlers used for AI training purposes and those used for standard search indexing. The feature gives site owners more granular control over how their content is accessed and used by different types of automated bots.

0
ProgrammingDEV Community ·

Graft: Open-Source Local Memory Tool Helps Coding Agents Retain Past Fixes

Graft is an open-source, local-first memory system designed to preserve knowledge that coding agents generate while solving real tasks, such as bug fixes, decisions, and project-specific constraints. Unlike vector databases, it is not built for bulk document indexing but focuses on retaining and retrieving agent-learned lessons across sessions. The tool runs entirely on-device using a CLI, a local daemon, SQLite storage, and BGE-M3 embeddings via llama.cpp, requiring no external API keys or cloud accounts. It offers three retrieval modes — query, retrieve, and explore — each using different combinations of semantic and lexical search techniques. Currently in active alpha at v0.1.x, Graft supports integrations with tools like Claude Code, Gemini CLI, and ChatGPT, with features such as memory profiles, graph exploration, and an MCP bridge already functional.

0
ProgrammingDEV Community ·

One Iceberg Data Agent Built Three Ways: Google ADK, AWS Strands, and Azure Compared

A developer built the same Apache Iceberg data agent three times — using Google ADK, AWS Strands, and Microsoft Agent Framework — and tested each version against multiple Iceberg catalogs on September 15, 2026. All three agents shared identical tools and instructions, with differences limited to cloud-specific configuration for storage wiring across GCS, S3, and ADLS. Speed varied significantly: the three frameworks ranged from 3.33 to 12.36 seconds at the median, with GPT-5-mini being slowest due to higher token output. Despite performance gaps, all three agents returned consistent, accurate answers — correctly identifying table versions and filtered row counts across all test runs. The experiment found that porting the agent's code between clouds is straightforward, but configuring each cloud's catalog and storage layer requires separate, careful setup.

0
ProgrammingDEV Community ·

One Iceberg Data Agent Built Across Google, AWS, and Azure Frameworks Compared

A developer built the same Apache Iceberg data agent three times using Google ADK, AWS Strands, and Microsoft Agent Framework, testing each against multiple Iceberg catalogs on September 15, 2026. All three versions used identical Python tools and instructions, with differences measured in code portability, response speed, and cloud-specific storage configuration. Speed varied significantly across frameworks, with the slowest and fastest agents 3.72x apart at the median, largely driven by how much text each underlying model generated. Per-cloud storage wiring — for OneLake, Glue, and S3 Tables — was the main porting effort, as misconfiguration caused data reads to fail even when catalog queries succeeded. Despite these differences, all three agents produced consistent, accurate answers by leveraging PyIceberg for scanning and filtering against their respective cloud storage backends.

← NewerPage 1215 of 3226Older →