SuperGeekery: A blog probably of interest only to nerds by John F Morton.

A blog prob­a­bly of inter­est only to nerds by John F Mor­ton.

Remaking Twitter thoughts

I cre­at­ed my Twit­ter account in 2007. It’s been my favorite social plat­form. The con­tent and con­nec­tions to peo­ple I get from Twit­ter aren’t repli­cat­ed on any oth­er plat­form that I’ve tried.There’s an obvi­ous prob­lem with my love of Twit­ter, and I’m not talk­ing about the bad things it may or may not do to soci­ety. Twit­ter’s finan­cials have nev­er been good, and a com­pa­ny that reg­u­lar­ly los­es mon­ey is unsustainable.I want some­one to… + read on


Stable Diffusion: Exploring trained models and unique tokens for more accurate text-to-image results

Stable diffusion trained models

Before I get start­ed, I’ve got a pre­am­ble to this post. I’m only in the ear­ly dis­cov­ery process of AI-pow­ered text-to-image tech­nol­o­gy. There’s a good chance you know more than I do about this top­ic! I’m writ­ing this to doc­u­ment what I’ve learned. If you’re read­ing this, you might be on the same jour­ney. If so, I hope you find this help­ful. If you peaked ahead in this post, you’d see all kinds of… + read on


RSS feeds and unbound prefix errors

I recent­ly was asked to add an image to an exist­ing RSS feed that had been work­ing for a client for years. This is the sim­pli­fied ver­sion, with only a sin­gle item, of what I was start­ing with. <?xml version=“1.0” encoding=“utf‑8”?> <rss version=“2.0” xmlns:atom=“http://www.w3.org/2005/Atom”> <chan­nel> <title>Example Site Name</title> <atom:link href=“http://example.com/feed” rel=“self” type=“application/rss+xml” /> <link>http://example.com/</link> <description>News from Example</description> <language>en-us</language> <pubDate>Fri, 08 Apr 2022 09:53:250500</pubDate> <lastBuildDate>Fri, 08 Apr 2022 09:53:250500</lastBuildDate> <item> <title>My Exam­ple Entry… + read on


npm in a box: Containerizing package managers for security.

npm in a box

I’ve writ­ten about Dock­er quite a bit recent­ly. This flur­ry of activ­i­ty about Dock­er is direct­ly relat­ed to a post by Andrew Welch, Dock Life: Using Dock­er for All The Things! He describes how to use alias­es and Dock­er con­tain­ers to run apps typ­i­cal­ly installed on a developer’s com­put­er with­out need­ing to install soft­ware direct­ly on the machine. I have whole­heart­ed­ly embraced the method­ol­o­gy. The idea of run­ning devel­op­ment tools in Dock­er con­tain­ers for… + read on


Containerizing a workflow: using Docker to Build A Banner”

A whale looking a icons representing animated banners.

We use a cus­tom-built ani­ma­tion work­flow at JMX2 that we’ve con­tainer­ized with Dock­er to ensure it runs con­sis­tent­ly on any machine we work on. We’ll go over that process in this post. The back­ground At JMX2, we build a lot of ani­mat­ed adver­tis­ing ban­ners. (You’re wel­come! :winking_​face:) In 2015, we cre­at­ed a Yeo­man gen­er­a­tor called Build A Ban­ner” to quick­ly cre­ate a con­sis­tent start­ing point for each project. This required hav­ing Yeo­man, Node, Gulp.js,… + read on


Configuring Craft CMS with Redis for use on Heroku

This post is about con­nect­ing a Heroku app built in Craft CMS to Heroku Redis with an SSL con­nec­tion. I’ve recent­ly tak­en an app from the free tier to a paid tier on Heroku and was pre­sent­ed with a prob­lem with con­nect­ing my Craft CMS app to Redis. I hope this post is help­ful to some­one else who’s found them­selves in this sit­u­a­tion. Upgrad­ing Heroku Redis from the free tier to a paid tier… + read on


Build a basic Docker image

Make a boat
Illustration: The Squeezebox, designed by Jeff Gilbert, is novel lifeboat designed to be a safer and better alternative to the inflatable life raft.

In this post, we’ll dis­sect a small Dock­er image I have on Dock­er Hub: johnf­mor­ton/tree-cli. It’s not a com­plex image, but its sim­plic­i­ty is good because it is fair­ly easy to under­stand. Once you under­stand the basics, you can cre­ate your own more com­plex Dock­er images. The tree-cli image is based on an offi­cial Node image and has one cus­tomiza­tion: I’ve installed tree-cli from npm, which is a pack­age that allows us to list… + read on


OneTrust blocking video playback due to privacy setting

I always feel like somebodys watching me
This image is from the film "It Follows". A good and creepy movie.

I have sev­er­al clients that use OneTrust for cook­ie con­sent. Each orga­ni­za­tion has dif­fer­ent con­fig­u­ra­tions for its OneTrust imple­men­ta­tion. Today we encoun­tered a tricky sit­u­a­tion that I want­ed to share. This par­tic­u­lar orga­ni­za­tion’s OneTrust con­fig­u­ra­tion is set to auto” which means OneTrust will active­ly enforce the user’s cook­ie pref­er­ences with­out much con­fig­u­ra­tion. The auto” set­ting makes imple­ment­ing OneTrust much eas­i­er, but we hit a road­block when it came to allow­ing video play­back for users… + read on


Video with transparency in Chrome, Edge, Firefox, Safari, iOS and Android, circa 2022 (updated in late 2024)

Transparent video

This post on using video with a trans­par­ent back­ground will prob­a­bly not age well. At least, I hope that is the case! Ide­al­ly, in the future, you can use a sin­gle .webm video file with an alpha chan­nel and it will work everywhere.But, as I write this post in Jan­u­ary 2022, and have updat­ed in 2024, after much research and try­ing dif­fer­ent approach­es, I have a <video> tag that will play a video with… + read on


Tweaking site performance and configuring AWS

PageSpeed 98 on jmx2.com

I’ve recent­ly updat­ed jmx2​.com. The site worked as it was and I did­n’t real­ly have the spare time to get to the ever-grow­ing list of updates I’d accu­mu­lat­ed. I had a week of rel­a­tive qui­et appear and I’ve final­ly worked on the site again. Here’s what I’ve been doing. Gen­er­al clean up of the code in the Craft Twig tem­plates. Built a new serv­er with PHP 8 and moved the site. I had already… + read on