Skip to main content
GrN.dk
Menu
Search
Search
Main navigation
Articles
Cases
Contact
Your Digital Project Manager
About Greg Nowak
Services
Portfolio
Container
Container sub-navigation
Excel Freelancer
Kubuntu - tips and tricks
Linux Apache MySQL and PHP
News
Image Gallery
Search
Search
User account menu
Log in
Join my community / free newsletter — sign up here
Breadcrumb
Home
All articles
Every article on GrN.dk, newest first.
EU OpenAI Residency Is a Migration Project, Not a Dashboard Toggle
AI Images Need a Chain of Custody, Not Just a Disclosure Label
MCP Just Went Stateless: Audit the Integrations Behind Your AI Tools
SEO Trends for 2026: What Actually Changed Since 2024
INP and Green SEO Share a Backlog: Cut the Work Every Visit Repeats
AI crawler policy now has verbs: separate search, RAG, and training
WordPress Supports Old PHP; Your Production Server Shouldn’t
The AI-built tool your team relies on needs an owner
Your AI model has an expiry date: build the migration lane now
Copilot Has Repo-Level Metrics Now. What Should Teams Measure?
Not Every AI Job Needs an Instant Answer: Batch the Backlog
A stray Set-Cookie can waste your CDN: audit the cache at the edge
Shorter TLS certificates expose every renewal you never automated
One Timeout, Two Orders: Make AI Actions Safe to Retry
Your AI Visibility Dashboard Needs a Methodology, Not More Charts
AI Admin APIs Are Here—But Your Directory Is Still the Source of Truth
OpenAI Presence Arrived—But Is Your Workflow Ready for an Agent?
Chatbot Transcripts Quietly Became a Retention and Redaction Problem
Cloudflare Service Keys Stop in September: Find Every Caller
Your AI Workflow Needs an Acceptance Test Before It Meets Customers
The Goats Were Load-Bearing: a fantasy where the bill always comes due
Vegan Power: The Little Game About Eating Fruit, Not Friends
KotobaMon: Shipping a 3D Browser Game With No Build Step and Self-Hosted Voice
WordPress Forced an Emergency Update. Did Every Site Take It?
IndexNow: Wire corrections and deletions into the CMS
The EU’s August AI Deadline Reaches Bots and Synthetic Content
A Voice Agent Is Only Ready When the Human Handoff Works
If the Facts Need JavaScript, AI Search May Miss the Full Page
Search Console Can See Social Posts—Your Reports Need a New Map
WordPress 7.0 Has an AI Client. Plugins Need Their Own Guardrails
Google’s AI Search toggle needs a test plan, not a gut decision
OpenAI Is Retiring Agent Builder: Save the Workflow, Not Just Prompts
AI agents need a browser policy before they start clicking around
When AI writes JSON, one bad field can break the workflow
AI search is eating the click: measure the queries before rewriting pages
AI shopping visibility now depends on boring product-data plumbing
Drupal AI Demos Need a Permissions Rehearsal Before Launch
Support bots need a deletion test before they learn the old help center
Before OpenAI agents touch the CRM, map the boring boundaries
Cloudflare Workers can become shadow IT without an integration register
AI automations need a spend dashboard before the first runaway bill
ChatGPT apps need a permissions map before they touch company data
llms.txt Is a CMS File, Not a Magic AI Visibility Button
Background AI Tasks Need Queues, Not Just Longer API Calls
Agent-ready APIs need a contract audit before MCP rollout
WordPress headless menus need an exposure check before launch
AI crawler permissions now belong in a licensing register
The risky part of AI workflow pilots is often the OAuth screen
AI disclosure rules belong in the CMS, not a spreadsheet
AI images need a media-library audit before they reach clients
ChatGPT Is Becoming Office Software: Put Admin Hygiene First
WordPress Speculative Loading Needs a Cart, Analytics, and Cache Test
Model Retirements Are Quietly Breaking AI Integrations
Drupal's June security bundle exposes fragile Composer update habits
Vibe-coded features need a production handoff before launch
Shorter TLS Certificates Make Renewal Monitoring a Server Job
The latest WordPress supply-chain attack was a CDN problem too
Agentic AI: what it is, how it works, and why it matters now
PHP 8.2 Has Six Months Left, and CMS Hosts Need a Plan
Cloudflare BYOIP customers need a rollback plan, not just trust
When Google can call the business, your local data stops being cosmetic
Your OpenAI and Cloudflare Keys Need an Expiry Date
Apache 2.4.68 Is a Reminder That Old Proxy Rules Need a Real Audit
AI bot traffic just beat humans, and crawler rules are no longer optional
WordPress 7.1's Media Pipeline Needs a Real Plugin and CDN Test Pass
June 2026 WordPress Plugin Exploits Put Inventory to the Test
AI Overviews, Legal Risk, and the Messy Work of Brand Truth
Drupal CMS 2.0: quick starts, harder rebuild choices
Cloudflare Turnstile for Lead Forms: Beyond the Widget
OpenAI Evals Bring Acceptance Tests to AI Workflow Releases
WordPress 7.0 AI features now live or die on connector governance
OpenAI's Guardrails and Run State Make Internal Agent Rollouts a Paid Approval-and-Audit Job
AI Research Assistants Need a Source Trail, Not Just Citations
Cloudflare AI Search namespaces make scoping a governance choice
WordPress 7.1 Unicode Emails Put Old Validation Rules on Notice
OpenAI Computer Use: Browser Agents Need Credentials, Not Demos
Bing AI Search Puts Fresh Sitemaps and IndexNow on the Clock
WordPress 7.0's React 19 Upgrade Makes Custom Block QA a Paid Compatibility Job
AI Voice Agents Need More Than a Number and a Realtime Model
OpenAI File Search: Internal Docs Need Governance Before Trust
WordPress.org's 24-Hour Plugin Cooldown Calls for Real Review
AI Shopping Makes Product Data Integrity a Technical Ops Job
Cloudflare AI Gateway Puts LLM Budgets in the Request Path
Before Your Website AI Bot Goes Live: Prompt-Injection Controls for Chat and Lead Capture
Structured Outputs Make Intake Automation a Schema Design Job
Cache, background, batch: a cleaner map for AI workload design
ChatGPT Visibility Without Open Access: robots.txt Is Only the Start
ChatGPT Apps with Full MCP Access: Governance Comes First
OpenAI Responses API and the old assistant migration clock
Google’s 2026 AI Search Guidance: SEO Still Counts, Reporting Changes
WooCommerce Checkout Blocks: When to Migrate or Roll Back
Cloudflare Resource Tagging: Small Labels, Real Governance Consequences
WooCommerce Scheduled-Action Backlogs: The Store Operations Risk to Fix First
MariaDB 10.6 EOL: quiet CMS hosting debt needs a real upgrade plan before July 2026
OpenSSH 10 Crypto Changes: Why Old SFTP Integrations Need a Cleanup Plan
Google’s August 18, 2026 Content API Cutoff: Feed Cleanup Before Merchant API Migration
Drupal 10's December 2026 Deadline: Start With the Upgrade Inventory
NGINX 1.30 changed upstream connection reuse: what to check before you upgrade
Cloudflare Zombie API Endpoints: A Practical Cleanup Plan
HubSpot OAuth v1 Is Going Away: A Practical Plan for Older CRM Integrations
Let's Encrypt Profiles Put Renewal Assumptions Under the Microscope
Ubuntu 26.04 LTS Raises the TLS Floor: How to Test Legacy Integrations
Cloudflare’s Enforce DNS-Only Switch: Test Your Origin Before an Incident
Drupal Automatic Updates After the Legacy API Shutdown: What to Fix Now
Apache 2.4.67 Put Legacy Reverse Proxies Back on the Risk List
Cloudflare Tunnel in 2026: Better Visibility, Harder Questions
Cloudflare Cache Response Rules: Safer Header Fixes at the Edge
Cloudflare Service Keys: Audit Old Automation Before September 30
WordPress 6.9.2 and Unsupported Theme Code: A Safer Update Playbook
WordPress Playground Makes Bug Reproduction Faster—Until the Host Matters
Drupal CMS 2.0 Speeds Marketing Site Rebuilds, but It Is Not Autopilot
Cloudflare Access: Lock Down Forgotten Staging Sites and Admin Panels
WordPress 6.8 Password Hashing: The Hidden Risk in Legacy Login Bridges
WooCommerce HPOS: The Migration Behind the Settings Toggle
Search Console’s Hourly Data Changes the Post-Launch SEO Checklist
WordPress Autoloaded Options: What the Site Health Warning Misses
WordPress Security Updates Need an Ops Runbook
WordPress 7.0 Upgrade Planning: What Old Meta Boxes Still Mean
JavaScript-Heavy Service Pages Still Lose Leads: What to Audit in 2026
URL Parameter Sprawl: Where SEO, Caching, and Analytics Collide
Cloudflare Page Rules Debt: How Quiet Configuration Drift Breaks Business Websites
Website Email Deliverability in 2026: A Practical Fix-It Checklist
Speculative Loading Without Surprises: A CMS Operations Checklist
Logistics Optimization in 2026: Fix the Flow Before You Buy More Tech
Why Your Website’s Third-Party Stack Needs a Real Owner
Form Spam Is a Lead-Quality Problem: How to Harden Your Intake Flow
CMS Upgrades in 2026: Choosing PHP for WordPress and Drupal
AI Crawler Control for Business Websites: Protect Content Without Vanishing from Search
Youtube Subtitles in Any Language
h2, h2c, and HTTP/1.1: Practical Choices for Real-World Stacks
Delete Files and Folders Older Than X days
SSH Tips and Tricks
Cloudflare API for Safer DNS Automation
Signing PDF documents
Canon 2010 Printer Tips and Tricks
How to Check Whether a PHP Constant Is Defined (Without Breaking Production)
Bash Tip and Tricks
Ubuntu Logs Journalctl and Dmesg
WordPress Cron: When It’s Time to Replace WP-Cron with Server Cron
Bash Find and Delete Files Older Than X Days
Nagios HTTPS monitoring: practical check_http and check_curl checks
How to Flush the DNS Cache on Ubuntu Linux
Remove whoopsie-upload
SystemD Notes Tips and Tricks
Skype For Linux Fix High CPU Consumption
Linux Browser Tweaks
Mysqldump Encoding: How to Prevent Broken Characters in Database Exports
KDE contextual menu shortcut (mouse right click wannabe)
Ubuntu Select Touch Device
KDE 5 Plasma Fix After Upgrade
Handling Multibyte Characters And Strings In R Project
PHP Only on the Front Page: Safer Checks for Live Sites
Nagios
Nano Text Editor
HTTRACK and wayback machine
Honda Click 125i DIY Notes
Run process in the background Linux
Wget The Non-Interactive Network Downloader Tips and Tricks
WordPress PageSpeed: What to Fix First for Better Core Web Vitals
SoapUI
R XML2
PDF to Word Conversion
Get Current Working Directory In Any Window Linux Bash
Adjust power management settings for Ryzen Processors
Trello Tips and Tricks
WP-CLI for Faster, Safer WordPress Operations
MySQL Zero-Date Import Errors: Fix Them Safely
OLCPT installation on Windows
Reinstalling and Updating All Current R-Packages To New Version of R
Enable SMART on Old External Seagate SSD Ubuntu 20.10
Cockpit, Monit, ISPConfig, or Landscape: Which Fits Your Ubuntu Servers?
How to Bulk Delete Cloudflare DNS Records Without Browser Console JavaScript
Scraping and Browser Automation: Choosing the Right Tool for the Job
Drupal Commerce: A Practical Setup and Scoping Guide
Drupal 9: A Practical Upgrade Path for Legacy Sites
Vegan Power Game Privacy Policy
USB headphone detection reintroduced in Ubuntu 20.10
Sending Mail from a Linux Server with Postfix: A Reliable, Relay-First Setup
Tonsil Fix
Drush Symfony PHP Errors in Drupal: A Safe, Practical Fix
Drupal 7 on MySQL 8: Fixing the NO_AUTO_CREATE_USER Error
Tidy Up composer.json with Composer Normalize
Linux Show Final URL Programatically
PHP Front-Page Detection: Safer Checks for Real-World Sites
Strip Metadata
Grub settings and options
Gregs Thai Notes
Boric Acid and Borax Recipe For Preservation
Online Store Links Thailand: Practical Supplier Shortlist
WordPress Admin Lockout: A Safe Recovery Guide
Tesseract Thai Language
CodeIgniter Login and Password Resets: Practical Security for Live Projects
Prestashop Modules And Info
JavaFX
Excel Baht To Text and English Version
TTFB Tips And Tricks
LibreOffice Calc Separate Cells Into Comma Separated Values
Drupal 8: Change Existing Content Language Safely
Drupal Taxonomy Hierarchy in Views: Practical Ways to Show Nested Terms
Drupal 8 Taxonomy Terms In Node URLs
Tar Notes
Squirrel SQL With MS SQL
Unable to Post in WordPress? Fix the Invalid JSON Response Without Guesswork
Recently Installed Packages Ubuntu
Critical CSS for Faster Pages: When It’s Worth the Work
Lenovo G580 Notes
Converting PNG to SVG
Recaptcha Above Send Message Button Webfrom Drupal 8
Certbot notes
VPS Setup Notes
Keyboard Mapping Kubuntu 20.04
Suspend Issue AMD Graphics Driver Kubuntu 20.04
Grub Notes
Kubuntu 20.04 USB Audio Devices Not Found Fix
Android Flutter Notes
Unzip with PHP on Shared Hosting: A Safer Way to Extract ZIP Files
PHP CSV Parsers: Practical Choices for Real-World Imports
Snedige Regneark!
Find and replace string in files recursively
Graphical Disk Usage Analytics
R CVXR linear programming
Payment Gateways Denmark
Webshop systems
Chrome Tweaks
Latest Version of Skype For Linux in Ubuntu 19.10 Eoan
VPS Options and Considerations
Debugging PHP: A Practical Workflow for Faster Fixes
Best Video Editor kdenlive
Git Tips And Tricks
SSH and Cpanel
WordPress Custom Fields: A Practical Guide to Structured Content
DIY Irrigation Timer and Valve System in Thailand: Build It for Flow and Service
Adjust Screen Brightness Ubuntu 19.10 - 22.04
Importing CSV data
Update Snaps Ubuntu
Redirect And Rewrite Notes
Reading Samsung Exfat K-Ubuntu 19.10
Detect Date Format In R Project
Encoding detection in R project
Libreoffice
Secret Mushroom Marinade
Use a VPS as a Proxy Server with SSH Tunneling
Prestashop Notes
Magento Installation Notes
Moving Drupal Blocks on Mobile: CSS, Regions, and Safer Tradeoffs
HTML 5 Games
Composer for Drupal Teams: Safer Installs, Cleaner Updates
Cloudflare SSL on a VPS: A Practical Setup Without the Gotchas
Drupal 8 Advanced Aggregation: Better PageSpeed Without Guesswork
Drupal 8 Inline Responsive Images: A Practical Legacy Setup
Install a Specific MySQL Version on Ubuntu Without Creating Upgrade Debt
Youtube over 1 billion views
Debugging WordPress on a Live Site: A Safer Workflow
Air Quality in Northern Thailand: A Practical Smoke-Season Plan
GDPR
Sending Mail with Drupal: Reliable Email Setup for Business Sites
Enable TLS on a Linux Mail Server Without Breaking Delivery
Xero Shoes Promotion
Web Browser Automation for Operations and Agency Teams: What to Automate and Which Tool to Use
Lenovo T450s Thinkpad Screen Connectivity Issues
Google Adwords For Small Companies
M Tuberculosis MTB
Drupal 8 Development in 2026: Safe Legacy Work and Upgrade Planning
Restful Services
Recommended WordPress Plugins for Business Websites: Keep the Stack Lean
Svar angĂĄende htaccess-fil til adgangskodebeskyttelse af mappe
Inline Image Pasting in Drupal: Faster Editing, Cleaner Media
Canonical Apache Redirects: Remove index.html and index.php Cleanly
Marriage Visa Extension Thailand
Cool Vegan Recipes
Youtube Backup
Drupal 7 HTTPRL Network Errors: A Practical Fix and Triage Guide
Image conversion and compression
Webshop software
Remote Desktop Alternatives
Mounting External USB Drive Attached To Router
Drupal Wiki: Build a Knowledge Base People Can Actually Use
Machine Learning
Greenfoot
Teaching Subjects
Python OpenCV
Backup In The Cloud
Open Social
Underhyleren.dk Til Salg
WordPress Backup Solutions: A Recovery Plan for Real Sites
Adding Functionality To Libre Office
Microsoft Access Database Resources: When to Fix, Split, or Replace Your System
Dynamic Images Excel Resources
R Project Resources
Big Data
VBA for Outlook And Onenote
Bali
Dashboard Example
Business intelligence tools
Free Virtual Lightroom For Raw Images
Mobile App Development Notes
Woocommerce 3.1x Built In CSV Importer
Upgrading PHP 5: Use PHP 7 as a Bridge, Not the Destination
Fix mailR and rJava Errors on Ubuntu Servers
Currently running cronjobs (crontab cron)
Pandora Stock Data
Directory Statistics Linux Terminal
Fingerprint No Refresh
Fingerprint Stock 5 Second Graph With Anonymous Sales
Pasting Images into Drupal: A Practical CKEditor 5 Setup
React Native
Excel VBA Utility Collection
Thailand To-Do: A Practical Route for Food, Farms, Islands and Focus
Vegan Restaurants in Chiang Mai: A Practical Field Guide
Google Review Link Generators: What Small Teams Actually Need
CSV Kit Notes Tips and Examples
Cycling Routes
Essential Drupal 8 Modules: What Still Matters on a Legacy Site
Check version of pip installed python package CSVkit
Shutdown Linux Machine At Specific Time
Time Stamp in R
SEO Audit Checklist: What to Check and Fix First
Optimizing Drupal: A Practical Performance Checklist
Plant Based Resources
Travel Hacks
Chiang Mai Secret Notes
SMF and PHP 7: The Safer Upgrade Path
Drupal 8 Bootstrap 3 sub theme setup
Lækker luksusvilla Engelundsvej 73 Viby J.
Glxgears No Vertical Synchronization
Downloading Facebook Videos
She Feels
Shrink PDF In Linux
Nordic Stocks
Running Linux on T450s T495s T14, Thinkpads and Others
Design Colors Palette
Bootable ISO Without Burning Anything
Screen Capture In Linux With Audio From Microphone and System Sounds
Linux Laptop Power Management TLP
Drush: A Practical Operations Layer for Drupal Sites
Importing External Data into Drupal: A Practical Migration Plan
Free Music For Your Videos
Append Multiple MOV Files and Edit Video
Mounting Your Android Phone In Linux
Free Drupal Themes in 2026: A Practical Shortlist
Forerunner 910XT In Linux - Garmin Connect
Drupal 7 Content Type Export and Import: A Practical Legacy Guide
RSS feed