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.

AI and your content. How to opt to opt-out.

A robot stealing an apple
A robot stealing an apple from an apple cart, generated by AI.

TLDR: This post will show you how to opt out of Ope­nAI’s large lan­guage mod­el (LLM) used for Chat­G­PT by updat­ing the robots.txt file. We’ll also dis­cuss ways to opt out of oth­er LLMs and web scrap­ers. The arti­cle starts by dis­cussing how the val­ue exchange is bro­ken between con­tent cre­ators and big tech after the intro­duc­tion of AI. If you cre­ate con­tent for a liv­ing or just as a hob­by, and that con­tent… + read on


Analytics a different way. Plausible Analytics on Laravel Forge with Traefik and Docker.

Out into the desert

Near­ly every­one uses Google Ana­lyt­ics. It’s the indus­try stan­dard for a rea­son. It’s an extreme­ly pow­er­ful tool, but legal and pri­va­cy issues may con­cern you. Want to try a dif­fer­ent route? Come along with me. TLDR: Install a self-host­ed instance of Plau­si­ble Ana­lyt­ics in a Dock­er con­tain­er with rout­ing by Trae­fik Proxy. Lar­avel Forge is used to pro­vi­sion the serv­er and deploy code. Where we’re head­ed We’re going to use Lar­avel Forge to cre­ate… + read on


Entry Editor Links, a new Craft CMS plugin

Entry editor link example
Example of the Entry Editor Links plugin. For authorized users, each entry title includes a link to edit the post.

I have pub­lished a new plu­g­in on the Craft CMS plu­g­in store: Entry Edi­tor Links. This plu­g­in is designed to help devel­op­ers quick­ly cre­ate links to an entry’s edit page in the con­trol pan­el for autho­rized users on the front end of a Craft site. Use Twig instead If you’re not sta­t­i­cal­ly caching your site, you can achieve a link in your Twig tem­plates and avoid adding anoth­er plu­g­in. One Darn­ley Road­’s starter tem­plate… + read on


Learning the FileMaker Data API by trial and error.

I’ve recent­ly com­plet­ed work on inte­grat­ing the File­Mak­er Data API into a Javascript appli­ca­tion. I fum­bled around dur­ing the process and want­ed to doc­u­ment my thoughts while my impres­sions were still fresh. The most sig­nif­i­cant issue: find­ing the cor­rect doc­u­men­ta­tion I’ll start with the con­clu­sion. My search­es did­n’t sur­face the cor­rect doc­u­men­ta­tion when I began the process, so I’ll share some URLs to begin. The Claris File­Mak­er Data API doc­u­men­ta­tion: https://​help​.claris​.com/​e​n​/​d​a​t​a​-​a​p​i​-​g​u​i​d​e​/​c​o​n​t​e​n​t​/​i​n​d​e​x​.html File­Mak­er 18 Data… + read on


Make Javascript module creation easier with Vite and automated GitHub Pages and npm publishing

Vite builder screenshot

Mak­ing a share” but­ton on a web­page is some­thing that I repeat­ed­ly do. I recent­ly decid­ed to pack­age up this code into an eas­i­ly re-usable Javascript mod­ule. You can check out the Pro­gres­sive Share But­ton on npm if you’re inter­est­ed in the end result. The process of cre­at­ing that mod­ule made me real­ize I did­n’t have a good work­flow to cre­ate a Javascript mod­ule. As I built the Pro­gres­sive Share But­ton, I built a… + read on


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