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

DevOps

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.

By Greg Nowak, 9 February, 2021
Illustrated infographic summarizing: MySQL Zero-Date Import Errors: A Safer Fix for Legacy Data

MySQL Zero-Date Import Errors: A Safer Fix for Legacy Data

Fix MySQL zero-date import errors without weakening the whole server. Audit the data, use a session-only bridge, and plan a durable cleanup.

Tags

  • mysql
  • database
  • migration
  • DevOps
By Greg Nowak, 3 February, 2021
Illustrated infographic summarizing: Cockpit, Monit, ISPConfig, or Landscape: Which Fits Your Ubuntu Servers?

Cockpit, Monit, ISPConfig, or Landscape: Which Fits Your Ubuntu Servers?

Cockpit, Monit, ISPConfig, and Landscape cover different operational needs. Here’s how to match each tool to administration, service recovery, hosting, or fleet management.

Tags

  • Ubuntu Server
  • Server Monitoring
  • Server Management
  • Infrastructure Operations
  • DevOps
By Greg Nowak, 30 May, 2019
Illustrated infographic summarizing: Composer for Drupal Teams: Safer Installs, Cleaner Updates

Composer for Drupal Teams: Safer Installs, Cleaner Updates

A practical Composer workflow for Drupal teams: reproducible builds, controlled updates, faster conflict diagnosis, and project-specific Drush.

Tags

  • Composer
  • Drupal
  • php
  • DevOps
By Greg Nowak, 5 April, 2019
Illustrated infographic summarizing: Install a Specific MySQL Version on Ubuntu Without Creating Upgrade Debt

Install a Specific MySQL Version on Ubuntu Without Creating Upgrade Debt

Choose a supported MySQL release on Ubuntu, install it through Oracle’s APT repository, and handle exact-version pinning without creating hidden upgrade debt.

Tags

  • mysql
  • Ubuntu
  • DevOps
  • Server Administration
DevOps

Review Greg on Google

Greg Nowak Google Reviews

 

Illustrated infographic summarizing: Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
2026-08-12

Cloudflare’s DoH JSON change exposes brittle DNS parsing. Find affected scripts, test both formats, and choose a safer integration contract.

Illustrated infographic summarizing: Your Website Can Answer Questions Now. Should It?
Your Website Can Answer Questions Now. Should It?
2026-08-11

NLWeb makes conversational website search practical to deploy. The real question is whether your content, users and team are ready to support it.

Illustrated infographic summarizing: AI Search Finally Has Reports. Now Connect Visibility to Revenue
AI Search Finally Has Reports. Now Connect Visibility to Revenue
2026-08-11

Google and Bing now expose first-party AI search data. The real task is connecting citations and impressions to analytics, CRM outcomes, and revenue.

Illustrated infographic summarizing: The Bot Passed Your CAPTCHA. What Did It Do Next?
The Bot Passed Your CAPTCHA. What Did It Do Next?
2026-08-11

Passing a challenge is only one signal. Session analysis, server-side validation and endpoint-specific controls help reduce bot abuse without blocking customers.

Illustrated infographic summarizing: WordPress 7.1 Moves Image Work Into the Browser—Test Every Media Hook
WordPress 7.1 Moves Image Work Into the Browser—Test Every Media Hook
2026-08-11

WordPress 7.1 shifts image processing into supported browsers. Here is what to test across hooks, CDNs, formats, security headers, and fallbacks.

Illustrated infographic summarizing: Prompt Caches Have Write Costs Now—Audit What Your Workflow Reuses
Prompt Caches Have Write Costs Now—Audit What Your Workflow Reuses
2026-08-10

GPT-5.6 makes cache writes billable. See how to spot wasted writes, stabilise prompt prefixes, place breakpoints and measure whether caching pays.

Illustrated infographic summarizing: The AI Crawler in Your Logs May Be Wearing a Borrowed Name
The AI Crawler in Your Logs May Be Wearing a Borrowed Name
2026-08-09

A User-Agent is a claim, not proof. See how to verify AI crawler traffic before it shapes reporting, robots.txt decisions, or WAF exceptions.

Illustrated infographic summarizing: AI Agents Need a Spending Brake, Not Just a Billing Dashboard
AI Agents Need a Spending Brake, Not Just a Billing Dashboard
2026-08-08

AI agent costs can climb inside a single workflow. Runtime budgets, loop detection, outcome metrics, and safe handoffs keep that spending under control.

Illustrated infographic summarizing: Drupal 12 Slipped to December. Drupal 10 Still Runs Out of Road
Drupal 12 Slipped to December. Drupal 10 Still Runs Out of Road
2026-08-07

Drupal 12 arrives as Drupal 10 support ends in December 2026. Moving to Drupal 11.3+ first keeps two mandatory upgrades manageable.

Illustrated infographic summarizing: EU OpenAI Residency Is a Migration Project, Not a Dashboard Toggle
EU OpenAI Residency Is a Migration Project, Not a Dashboard Toggle
2026-08-05

An EU-resident OpenAI API setup needs a new project, regional routing, dependency and state migration, compatibility testing, and clear governance evidence.

More articles
RSS feed

Footer

  • All articles
  • Contact

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