Skip to main content
GrN.dk

Main navigation

  • Articles
  • Cases
  • Contact
  • Your Digital Project Manager
  • About Greg Nowak
  • Services
  • Portfolio
  • Container
    • Excel Freelancer
    • Kubuntu - tips and tricks
    • Linux Apache MySQL and PHP
    • News
    • Image Gallery
User account menu
  • Log in

Join my community / free newsletter — sign up here

Breadcrumb

  1. Home

Automation

Diagram of the delivery pipeline in three lanes: Android to Google Play (commit on main, host gate of 44 tests, signed build, emulator smoke on a real device, Play production); iOS to TestFlight (App Store Connect subscription-approval gate, cloud macOS build, build number from Apple); and a daily device round that reseeds four subscription states and reads the screen back by OCR. Beside it, the real screenshot the pipeline pulls off the emulator on every publish.

Mit Håndværk publishes itself to two app stores — and a real phone holds the veto

Mit Håndværk — Danish marketplace app for craft, art and design (mithaandvaerk.dk); Flutter on Android and iOS, Laravel backend
Mobile delivery automation — Flutter CI/CD, on-device acceptance testing, Google Play and App Store publishing

Mit Håndværk is a Danish marketplace app for craft, art and design — a Flutter app on Android and iOS over a Laravel backend, with subscriptions, real-time chat and push. This case is not about the app's screens. It is about the machinery that puts a new version of it in front of users: a pipeline that takes a commit on main and, roughly ten minutes later, has published it to Google Play production — but only after the release has been installed and cold-started on a real Android device and survived it.

The same pipeline covers Apple from a Linux server that cannot build iOS at all: a release tag hands the build to a cloud macOS machine, which signs it and uploads it to TestFlight — and the tag itself cannot be pushed unless the app's subscriptions are actually approved and priced in App Store Connect.

Everything in the picture above is read off the running system: the counters come out of the pipeline's own log, and the phone panel is the screenshot the publish gate pulls off the emulator on every single release.

The job finder's job list, captured from a throwaway demo copy seeded with invented rows — the header reads "Job finder — demo data" beside the list of sources. Each card carries a job title, a source chip (jobindex, verama, freelancermap, emagine, weworkremotely, amino), an AI score out of 5, an optional contact-mail chip, a location and a seen-date, then three actions: applied, draft email, and discard with a "why discard?" note. No real advertisement or employer appears.

A private job radar that reads seven boards every morning — and throws away most of what it finds

GrN.dk — internal build
Personal automation, public-source scraping and AI-assisted filtering

This one has no link on it, and that is the point: jobs.grn.dk answers 401 to the internet and always has. It is an internal tool — a job radar, built for its owner's own search for work. Every morning it reads seven contract and job boards, drops everything that cannot match a written profile, has what survives judged by a language model against that profile, and presents the handful worth reading as one screen with three buttons: applied, draft email, discard.

Because it holds one real person's live job search, nothing of it is published here. The screenshot above is a throwaway demo copy of the same interface, seeded with invented rows — every company, title, location and address in it is a placeholder, and it labels itself "demo data" in the header so it can never be mistaken for the live board.

The crypto-dash.grn.dk status page: the heading "nexus auto-trader" beside an orange PAPER ONLY badge, over the line "hourly strategy sweep → leaderboard → paper promotion · no real orders, ever". Stat tiles read 649 configs tested, 715 backtests last 24h, 2 sweep windows, 3 paper strategies and +0.00 paper P&L in USD. Below them a Paper strategies panel lists three promoted configurations with all-zero P&L rows, and a Promotion pipeline table shows each candidate's streak and score.

A trading rig that tests its own strategies every hour — and never places an order

GrN.dk — internal build
Quantitative research tooling and automation

crypto-dash.grn.dk is the public window onto a strategy-research rig that runs on our own server and trains itself. Every hour it backtests a fresh batch of trading-strategy configurations against five-minute crypto candles, scores each one on data it was not fitted to, keeps a running leaderboard, promotes the configurations that hold the top into a simulated book, and demotes them again as soon as their forward behaviour drifts away from what the backtest promised.

It is paper trading only. The installation holds no exchange keys, calls no order endpoint and has no account to spend from. Every fill, every position and every P&L figure on that page is simulated — which is why the page prints PAPER ONLY on itself, in orange, at the top of every hourly regeneration.

By Greg Nowak, 23 June, 2026
Illustrated infographic summarizing: Model Retirements Are Quietly Breaking AI Integrations

Model Retirements Are Quietly Breaking AI Integrations

Hard-coded AI model IDs can fail when vendors retire models. A practical guide to finding, testing, and migrating integrations before shutdown dates arrive.

Tags

  • ai-integration
  • openai-api
  • llm-operations
  • Automation
By Greg Nowak, 22 May, 2026
Illustrated infographic summarizing: OpenSSH 10 Crypto Changes: Why Old SFTP Integrations Need a Cleanup Plan

OpenSSH 10 Crypto Changes: Why Old SFTP Integrations Need a Cleanup Plan

OpenSSH 10 removes DSA and warns on non-post-quantum key exchange. Here is how to scope SFTP cleanup without weakening every SSH connection.

Tags

  • OpenSSH
  • SFTP
  • SSH
  • Linux
  • Automation
By Greg Nowak, 5 November, 2021

Cloudflare API for Safer DNS Automation

A practical guide to Cloudflare API tokens, curl, comments, and zone imports for safer DNS changes across launches, migrations, and handovers.

Tags

  • Cloudflare
  • DNS
  • API
  • Automation
  • bash
By Greg Nowak, 9 November, 2017

Fix mailR and rJava Errors on Ubuntu Servers

A production-aware guide to fixing mailR and rJava failures on Ubuntu, from libjvm.so and javareconf to reliable scheduled-job tests.

Tags

  • Linux
  • R Project
  • Java
  • Ubuntu
  • Automation
Automation

Review Greg on Google

Greg Nowak Google Reviews

 

Illustrated infographic summarizing: AI crawler policy now has verbs: separate search, RAG, and training
AI crawler policy now has verbs: separate search, RAG, and training
2026-08-02

AI crawler rules now need separate decisions for search, RAG, and training, backed by practical testing across robots.txt, CDNs, WAFs, and CMS controls.

Illustrated infographic summarizing: WordPress Supports Old PHP; Your Production Server Shouldn’t
WordPress Supports Old PHP; Your Production Server Shouldn’t
2026-08-01

WordPress still runs on legacy PHP, but compatibility is not a security policy. Build and test your upgrade path before PHP 8.2 support ends.

Illustrated infographic summarizing: The AI-built tool your team relies on needs an owner
The AI-built tool your team relies on needs an owner
2026-07-31

AI-built internal tools can become business-critical before anyone owns them. Here is how to secure, review, monitor, and retire them without blocking useful work.

Illustrated infographic summarizing: Your AI model has an expiry date: build the migration lane now
Your AI model has an expiry date: build the migration lane now
2026-07-30

AI models retire on a schedule. Learn how to map dependencies, test replacements, release safely and preserve a working rollback route.

Illustrated infographic summarizing: Copilot Has Repo-Level Metrics Now. What Should Teams Measure?
Copilot Has Repo-Level Metrics Now. What Should Teams Measure?
2026-07-29

GitHub’s repo-level Copilot metrics show where AI is active, but not whether it adds value. This scorecard connects usage with delivery, quality, and cost.

Illustrated infographic summarizing: Not Every AI Job Needs an Instant Answer: Batch the Backlog
Not Every AI Job Needs an Instant Answer: Batch the Backlog
2026-07-28

Move delay-tolerant AI work into dependable batch queues to cut processing costs without compromising quality, data controls, or urgent workflows.

Illustrated infographic summarizing: A stray Set-Cookie can waste your CDN: audit the cache at the edge
A stray Set-Cookie can waste your CDN: audit the cache at the edge
2026-07-27

Cloudflare Cache Response Rules can recover wasted CDN capacity, but first you need a route-level audit of public, personal and authenticated responses.

Illustrated infographic summarizing: Shorter TLS certificates expose every renewal you never automated
Shorter TLS certificates expose every renewal you never automated
2026-07-26

Shorter TLS lifetimes leave less room for manual handoffs and faulty deploy hooks. Build a renewal path that protects service availability.

Illustrated infographic summarizing: One Timeout, Two Orders: Make AI Actions Safe to Retry
One Timeout, Two Orders: Make AI Actions Safe to Retry
2026-07-25

A timed-out AI action may already have succeeded. Stable keys, durable ledgers, queues and stored results prevent a routine retry from duplicating real work.

Illustrated infographic summarizing: Your AI Visibility Dashboard Needs a Methodology, Not More Charts
Your AI Visibility Dashboard Needs a Methodology, Not More Charts
2026-07-24

A practical framework for measuring AI-search visibility with fixed prompts, repeated tests, separate metrics, retained evidence, and honest reporting.

More articles
RSS feed

GrN.dk web platforms, web optimization, data analysis, data handling and logistics.