cf900b3409
images: bust CF cache for the de-watermarked art; add the dewatermark tool
main
jwright2026-08-25 18:20:29 +10:00
4a8552c408
images: remove generator watermark from all published art
jwright2026-08-25 18:00:38 +10:00
b5e0b25667
site update: cover art for the learn-site case studies; publish untrusted-in-a-vm (SECURITY #7)
jwright2026-08-25 17:24:51 +10:00
c5b1044d7a
projects: add The Mirror pull-through registry case study; wire cover art for both learn-site projects
jwright2026-08-25 09:18:11 +10:00
8d394fe2c7
nav hover: glow instead of the underline bar, and give keyboard focus the same glow
jwright2026-08-18 11:04:27 +10:00
21616762e6
nav: add a Learn tab pointing at the teaching site, and drop the scroll-spy underline - tracking the active section as you scrolled read as clunky, so the underline is hover-only now; also refresh the public CV
jwright2026-08-18 10:05:49 +10:00
f6b683713e
publish the public CV and fix the availability check to resolve from the project root - Vite rewrites module URLs at build so the relative walk never found public/
jwright2026-08-18 09:56:59 +10:00
b6d3d4487a
offer the CV download in the contact section too, so a recruiter who scrolls straight there can grab it
jwright2026-08-18 09:50:21 +10:00
dd2207bfa6
add the exploded cluster as a project with a live link to learn.bztmon.com
jwright2026-08-18 09:40:58 +10:00
51d1ccb149
README: describe the JS that actually ships instead of claiming zero, and note why the site still works with JS disabled
jwright2026-08-18 02:03:57 +10:00
36444c3424
corrections from Jonathon: Unimus and NetBox were different jobs on different infrastructure, so NetBox comes out of the network project entirely; the Google migration was off GCP and Google Workspace onto Windows AD, Microsoft 365 and Azure; the ERP refresh included daily COBOL green-screen work; contact line kept in one place
jwright2026-08-18 01:54:49 +10:00
7cbc3629a6
second pass: name the real GPU mechanism (resource request schedules, init container gates startup, probes track runtime health), scope the network DR and reversibility claims to what config backup actually gives you, drop production-grade, and colour the education hash instead of the first letter
jwright2026-08-18 01:50:07 +10:00
c07f8433dc
revert the homepage JSON-LD: application/ld+json is still an inline script under script-src 'self', and the no-inline-script posture is worth more than the structured data
jwright2026-08-18 01:36:33 +10:00
0f85bd9870
add Person and WebSite structured data on the homepage so a search for the name resolves to the right engineer
jwright2026-08-18 01:15:24 +10:00
6155aca055
bastion post: drop the host address and the list of credentials it holds - the architecture makes the point without the inventory
jwright2026-08-18 01:13:57 +10:00
573e7a6002
blog: give each post its own closing heading instead of sixteen sections called 'The principle'
jwright2026-08-18 01:12:54 +10:00
25425d6f6a
portfolio pass: correct the CSP claim to match what nginx sends, rename the project outcome label, plain-english the projects intro and bio, standardise on Argo CD and single-touch, drop the education filler line
jwright2026-08-18 01:11:25 +10:00
7542ae2665
turn off smartypants so the rendered pages stay ascii
jwright2026-08-17 23:23:31 +10:00
43188589ab
sweep the last typographic punctuation out of the components and data files
jwright2026-08-17 23:21:38 +10:00
3cfd59a464
copy pass: straighten quotes and arrows, thin the dash asides, drop the app-count caption from the constellation
jwright2026-08-17 23:12:42 +10:00
78e8740408
deps: clear the nanoid and ip-address high advisories flagged by the audit gate
jwright2026-08-17 02:08:03 +10:00
e90bf177a5
blog: open the EDGE AI, AUTOMATION and OBSERVABILITY arcs
jwright2026-08-17 01:50:25 +10:00
a0d71388c4
constellation: seamless animation loops — dash offset aligned to the 136px pattern period (dots no longer jump at the seam), radar ring fades in instead of popping
jwright2026-07-13 15:32:09 +10:00
3217d779b3
constellation: key to the right edge (left clips on narrow heroes), bat-gloss swatch for core/services
jwright2026-07-13 15:16:24 +10:00
94698c6315
constellation: intel accent for alfred + elfastc, compute colour key, drop the stale kate caption
jwright2026-07-13 15:00:11 +10:00
87cfe78ffc
blog: publish three posts — backup restore drills, the bastion pattern, split-horizon DNS-01 (heroes + diagrams)
jwright2026-07-09 15:02:17 +10:00
2896f89af3
footer: unify the receipt + identity into one terminal session panel; fix HEAD sha in container builds (GIT_SHA build-arg)
jwright2026-07-09 14:04:54 +10:00
908d311e5c
fix(skills): collapse bento spans at 2-col breakpoint, not 720px
jwright2026-07-03 23:56:07 +10:00
0d05aae721
blog: republish 2 edited posts, dossier thumbnails 4-6, new post broker-pattern
jwright2026-07-03 21:12:52 +10:00
c162f2e4e7
nav: phone tabs on a compact second row - zero-JS, scrollable, no hamburger
jwright2026-07-03 20:47:09 +10:00
de7c257ab7
hero: wrap the fleet-fact bar on phones - nowrap+max-content busts a 390px viewport
jwright2026-07-03 20:16:52 +10:00
d64f528ff7
Merge pull request 'docker: digest-pin the node:22-bookworm-slim build base' (#2) from mirror/node-digest-pin into main
jwright2026-06-23 11:01:59 +00:00
dc42d31595
docker: digest-pin the node:22-bookworm-slim build base
jwright2026-06-23 20:47:02 +10:00
c5d9da9092
Merge pull request 'blog: 'The most secure credential is the one you never mount'' (#1) from blog/workload-least-privilege into main
jwright2026-06-23 09:20:50 +00:00
b18c6589bf
blog: 'The most secure credential is the one you never mount'
jwright2026-06-23 19:17:03 +10:00
cbb82eb97b
Add SSO+2FA and outbound-exposure posts with Excalidraw architecture diagrams; Diagram component serves outlined SVGs
jwright2026-06-22 16:26:15 +10:00
08fb56935d
contact: low-latency phrasing for the get-in-touch lead (LinkedIn + email)
jwright2026-06-17 22:47:09 +10:00
939962aeeb
footer: add CC BY-NC-SA 4.0 content license + low-latency contact line
jwright2026-06-17 22:14:08 +10:00
1c956d6ec4
Hero: fix title descender clipping (g); CI: rename PR token var so Gitea's auto GITEA_TOKEN doesn't 401 the branch step
jwright2026-06-17 20:54:57 +10:00