All Articles

69 articles published

boxlang

Everything Feedhouse Does, From the Boring Parts Up

A tour of everything Feedhouse does, from the boring parts up: adding feeds, folders and keyboard shortcuts, then search, read-later, highlights and stories shown once, then filters for what you never want to see, feed health, a reading-stats table of shame, sharing, bundles and the phone app. Then the good stuff: newsletters with an address of their own and no tracking pixels, and a podcast player that keeps going while you read. No algorithm required.

cfml

Shopify API 2026-10 Changes

Shopify's 2026-10 API is stable. Breaking changes: address edits on unfulfilled orders now recalculate taxes, draft order PriceRule is gone, invalid metafield filters now error instead of being ignored, carrier services no longer auto-join the General profile, and FULFILLMENT_NOT_REQUIRED joins the status enum. ProductVariant.barcode gives way to barcodes. Additions include multi-tracking order imports, Shopify Payments fee details, and a new subscription calculation flow.

cfml

Shopify GraphQL: Order Ingestion & Updates

A reference for Shopify GraphQL order work in CFML. Covers GIDs, cost-based rate limits, and why HTTP 200 means nothing without checking userErrors. Ingestion: webhooks, paginated queries, bulk operations. Updates: orderUpdate, order edits, fulfillmentCreate, orderCreate for marketplace imports. Includes a CFC harness using script-based cfhttp, with one retry on THROTTLED. Notes the 2026-10 address-triggers-tax-recalc change.

boxlang

My blog joined the fediverse

This blog is now on the fediverse as @blog@kisdigital.com. Follow it from Mastodon and new posts, edits and deletions reach your timeline within minutes; replies come back here as comments, and likes and boosts are counted. It's all powered by bx-activitypub, a new BoxLang module on ForgeBox and GitHub: your app answers four questions about its data and the module handles WebFinger, HTTP Signatures and delivery. Here's how it works, what I learned, and what's next.

boxlang

What's in BoxExpress Today

BoxExpress is an Express.js-style web framework for BoxLang, running on Undertow with a virtual thread per request — no servlet container needed. It covers routing, middleware, sessions, views, file serving, WebSockets, a full STOMP broker, and a scheduler. New: cross-process cluster support, with leader-elected scheduled jobs and STOMP pub/sub relayed across instances, backed by a durable shared cache. Real example apps: bxThreads (forum) and bx-graphql-demo.

boxlang

bxThreads: a bx-express port of DismalThreads

Ported my forum app (DismalThreads) from ColdBox/CBWIRE to BoxLang/boxlang-express as bxThreads — swapping CBWIRE's component reactivity for hand-rolled fetch()/websockets. Porting a real app with existing opinions (auth, rate limiting, realtime fan-out) is a better BoxLang stress test than starting fresh, since a blank project lets you dodge every hard problem by never hitting it.

coh

Spines / Fire Brute — AE Fire Farm Build Guide

Spines/Fire is one of Homecoming's premier farming Brutes. Spines delivers relentless AoE via Quills, Spine Burst, and Throw Spines, while Fiery Aura brings strong resists, Healing Flames for sustain, and Fiery Embrace for burst damage. Cap fire defense at 45% (Weave, Maneuvers, Fire/Plasma Shield, set bonuses) and you're nearly untouchable on fire-only farm maps. Fast Fury generation, minimal downtime, and huge influence-per-hour make it the classic "bootstrap" alt to fund your other toons.

boxlang

Adding SSE and WebSockets to BoxExpress (and Everything That Broke Along the Way)

BoxExpress adds server-sent events and full WebSocket support for pushing live updates to clients — dashboards, progress bars, chat, notifications. Built from scratch, since BoxExpress skips BoxLang's built-in web layer. Along the way: a concurrency bug in broadcast connections, a header-injection-style hole in SSE metadata, a BoxLang update that broke page rendering, and a STOMP bug letting one client hijack another's subscription. All caught by trying to break it.

boxlang

BoxLang and GraphQL

bx-graphql brings GraphQL to native BoxLang via graphql-java, wrapping it in a schema-agnostic module with convention-based resolvers and zero framework lock-in. To prove it out beyond source code, Robert built a fully offline demo pairing it with boxlang-express — a JSONPlaceholder-style schema, thin resolvers that mostly fall through to `PropertyDataFetcher`, and a no-build-step query console. Both modules are live on ForgeBox: `box install` and go.

boxlang

BoxLang Express Development Update 8/26

BoxExpress 0.1.15→0.2.1: five patch releases fixed empty-value crashes (query/cookie/multipart), hardened proxy-IP trust for real platforms, fixed session data loss against non-memory stores, added response outcome accessors and opt-out session writes, and closed a trailing-slash bug hitting nearly every request. Then 0.2.0 replaced the JDK's HttpServer with Undertow entirely (breaking), verified at full parity and load-tested. 0.2.1 added live HTTP-layer metrics via getConnectorStatistics().

coh

IO Enhancement Sets Reference Guide

Reference guide to City of Heroes: Homecoming IO enhancement sets, organized by power type (melee/ranged/AoE damage, defense, resistance, healing, holds, pets, travel, etc.). Explains set bonus mechanics (ED, Law of Fives, attuned/Superior ATOs), highlights ⭐ best-in-slot and 🔴 rare/expensive sets, and lists universal must-have globals (LotG +Recharge, Panacea, Numina's, Steadfast +3% Def) plus per-archetype ATO procs and a quick-reference table of top bonus sources.