kris.coppieters.nz
@kris.coppieters.nz
The next Creative Coding Collective (CCC) online meetup is around the corner. Make sure to mark your calendar!

See y'all soon!

Details: tur.nz/s

The CCC is a volunteer-run community of creative developers, technologists, and industry specialists. More info, and how to join: tur.nz/e
Meeting 7 November 2025 – Creative Coding Collective
tur.nz
November 5, 2025 at 9:48 AM
After 20+ years automating Adobe software, I’ve seen it all, and learned a lot along the way.

Join me in Phoenix, AZ on Wednesday, June 4 at the Creative Developers Summit for a hands-on workshop.

Stop wasting weeks on trial and error.

thoughtbridg.es/creative-dev...
Creative Developers Summit, June 4-5 Phoenix, AZ. | Thoughtbridges
thoughtbridg.es
May 9, 2025 at 6:50 AM
Don’t Obfuscate (Unless You Mean To).

This is post #8 in my series "Coding Without The Jargon":
Obfuscation is often not intentional. It’s just what happens when you write fast.
What’s the worst case of accidental obfuscation you’ve had to untangle?
coppieters.nz?p=1649
Don’t Obfuscate – Coppieters, New Zealand
coppieters.nz
May 5, 2025 at 9:12 AM
For me, throwing an exception is a last resort.

In the latest post of my Coding Without the Jargon series, I explain why I treat exceptions as a defense mechanism, rather than as a data-passing mechanism.

coppieters.nz?p=1602
Exceptional! – Coppieters, New Zealand
coppieters.nz
April 28, 2025 at 4:46 AM
Let your code be a helpful snitch.

That one weird NULL, that file that should exist, the thing that 'this will never happen'. If your code is full of tattle-tales, reporting anything out of the ordinary, you'll save on debugging time.

coppieters.nz?p=1594
Avoid Silent Failures – Coppieters, New Zealand
coppieters.nz
April 24, 2025 at 4:31 AM
Developer Roundtable at the Creative Developers Summit, Phoenix, June 4-5 2025.

Software developers and consultants! As a one-man band or small software development company, how do you survive in today's chaotic business environment?

creativeproweek.com/phoenix-2025...
Creative Developers Summit | June 4–5
The Creative Developers Summit is the premier annual event for anyone who creates or implements custom software solutions for creative professionals. The Summit is the place to meet, share, and learn ...
creativeproweek.com
April 22, 2025 at 10:11 PM
When you join an existing codebase, the first impulse is often: “Ugh. This needs fixing.”

In the third post of my Coding Without the Jargon series, I talk about a simple but powerful principle: respect the style, even if it’s not your own.

coppieters.nz?p=1562
Contributing To An Existing Project? Understand It Before You Fix it. – Coppieters, New Zealand
coppieters.nz
April 22, 2025 at 9:58 PM
Coding Conventions: the source of many holy wars

Tabs vs. spaces. Braces on their own line. Snake case, camel case, screaming caps. Friendships have ended over less.

My take: 'any' is better than 'none'.

coppieters.nz?p=1573
Any Coding Convention, But Pick One. – Coppieters, New Zealand
coppieters.nz
April 22, 2025 at 9:57 PM
Bug report from a user. Remote machine. No debugger. Just a cryptic screenshot and 'it does not work' in all caps.

In the fifth installment of my 'Coding Without the Jargon' series, I share why I never write code, not even temporary code, without a logging infrastructure.

coppieters.nz?p=1585
Log Early, Log Often – Coppieters, New Zealand
coppieters.nz
April 22, 2025 at 9:56 PM
Coding Without the Jargon. Write Code Even a 12-Year-Old Can Read.

If your code tells a clear story, it’s easier to debug, maintain, and hand off, whether to a teammate or your future self 18 months from now.

Read the full post here:

coppieters.nz?p=1548
Write Code That Is Human-First – Coppieters, New Zealand
coppieters.nz
April 1, 2025 at 10:05 PM
Coding Without the Jargon – Post 1: Small Wins in Messy Code

In the first post of my new blog series, I explain how I approach gradual improvements.

We're not talking about grand refactorings. It's all about taking tiny steps that add up to big improvements.

coppieters.nz?p=1533
Leave The Code A Little Cleaner Than You Found It – Coppieters, New Zealand
coppieters.nz
March 24, 2025 at 9:50 AM
After years of fixing other people's code, I've found that best practices rarely appear in the wild. Not that they're bad, but teams lack time for complex solutions. I've developed pragmatic coding principles that work across languages allowing gradual improvement:

coppieters.nz?p=1496
Coding Without the Jargon – Coppieters, New Zealand
coppieters.nz
March 19, 2025 at 9:29 PM
Creative Cloud Desktop sez: You Don’t Have Access To Manage Apps

I got tired of the fiddly process of manipulating serviceconfig.xml when for no apparent reason, I lose access.

I wrote two scripts (Mac/Windows) to automate the 'fix' for the issue. More info here:

coppieters.nz?p=1477
Creative Cloud Desktop sez: You Don’t Have Access To Manage Apps – Coppieters, New Zealand
coppieters.nz
March 9, 2025 at 5:38 AM
Diving Into Data Science - Step 2. A Virtual GPU?

coppieters.nz?p=1456
Diving Into Data Science – Step 2: a Virtual GPU? – Coppieters, New Zealand
coppieters.nz
March 2, 2025 at 8:38 AM
Diving Into Data Science - Step 1.

I'll be documenting my foray into data science on my blog:

coppieters.nz?p=1448
Diving Into Data Science – Step 1. – Coppieters, New Zealand
coppieters.nz
February 28, 2025 at 3:29 AM
Running DeepSeek-r1 locally, using a web-based UI is really easy on a Mac with sufficient memory.

coppieters.nz?p=1445

I now use this instead of reaching for ChatGPT or Claude: it's free, and any conversations I have remain private.
Running LLM Locally – Coppieters, New Zealand
coppieters.nz
February 26, 2025 at 3:35 AM
Stripping comments from JSONC data so it can be processed with json_decode() in PHP,

or

Trying to get a chatbot to come up with good code often takes longer than writing the code properly from the get-go...

coppieters.nz?p=1429
JSONC, State Machines, LLM – Coppieters, New Zealand
coppieters.nz
February 19, 2025 at 8:52 PM
I am on the fence - should I put effort into learning how to develop third-party add-ons for Express?

Read more here:

coppieters.nz?p=1407
Developing For Adobe Express? – Coppieters, New Zealand
coppieters.nz
February 13, 2025 at 5:30 PM
When I use any of a number of different AI-based image generators, and all of them seem to have a tendency to produce 'yellow-tinged' images.

I've got a theory as to why that is!

coppieters.nz?p=1403
The Golden Hour – Coppieters, New Zealand
coppieters.nz
February 10, 2025 at 3:14 AM
Notice the man behind the curtain.

To get a better 'gut feel' of what an LLM chatbot really is, and avoid over-antropomorphisation, I ran some interesting experiments with a small context window...

coppieters.nz?p=1384
Running a chatbot with a small context window – Coppieters, New Zealand
coppieters.nz
February 5, 2025 at 11:21 PM
When releasing software, you want to make sure the version info is reflected everywhere: name of the delivery file, readme files, startup messages, About screen...

Here's how I use the C preprocessor to use a C/C++ header file as the single source of truth for a project:

coppieters.nz?p=1377
Version number injection with the C preprocessor – Coppieters, New Zealand
coppieters.nz
February 4, 2025 at 11:33 PM
In the past, GitHub served HTML documentation files as source code rather than rendering them as web pages, making it challenging to view generated documentation directly.

The situation has since improved, and you can browse HTML pages inside a repo straight from Github.

coppieters.nz?p=1234
Github and HTML Documentation Files – Coppieters, New Zealand
coppieters.nz
February 3, 2025 at 9:34 AM
GryperLink is a script for Adobe InDesign.

It can automatically assign interactive hyperlinks to InDesign text or images, based on find-and-insert pattern matching.

GryperLink 1.0.9 has been released, with a simplified install process by way of PluginInstaller.

rorohiko.com/wordpress/in...
GryperLink for InDesign - Rorohiko Workflow Resources
What is GryperLink? GryperLink is a script for Adobe InDesign. It can automatically assign interactive hyperlinks to InDesign text or images, based on
rorohiko.com
February 1, 2025 at 9:53 AM
I found out that A4 paper has a surface area of 1/16 m², as defined by the ISO 216 standard.

coppieters.nz?p=1357
A0 = 1 – Coppieters, New Zealand
coppieters.nz
January 29, 2025 at 10:43 PM
Neat trick: how to get the path to the current script file in UXPScript.
Initially, I tried __filename and __dirname, but those returned 'sandboxed' paths, i.e. paths that were relative to the script's parent folder.

I needed absolute paths - here's how to do it:

coppieters.nz?p=1237
How to get the absolute path of the currently running UXPScript – Coppieters, New Zealand
coppieters.nz
January 29, 2025 at 10:07 AM