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 Morton.


The HTML email tem­plate in Craft CMS

Craft HTML email template option screenshot

The doc­u­men­ta­tion of Craft CMS improves con­stant­ly but for a CMS that evolves at the pace we’re used to with Craft, keep­ing up with doc­u­ment­ing every nook and cran­ny doesn’t always hap­pen. The HTML Email Tem­plate is pret­ty basic and has­n’t received much love in the docs yet. Search­ing the Craft doc­u­men­ta­tion does­n’t turn up much infor­ma­tion. If you search the Craft Dis­cord com­mu­ni­ty, you’ll find doc­u­men­ta­tion nuggets scat­tered in con­ver­sa­tions. In this post… + read on


Dock­er, Craft, Forge, Arcustech, and Heroku

I have recent­ly embraced using Dock­er for my local devel­op­ment. To be clear, I’ve had stum­bles along the way. Luck­i­ly, I have a friend who is always there to help me out. (Thanks, Andrew!) As with almost every­thing I post on this site, this post serves as a note to my future self, but I hope you (you, being you, not me) gets some­thing out of it too. ## Why do this? Like many… + read on


So long, Craft Link List, and hel­lo again, Craft Link List

How to decide

Hel­lo Craft friends! I’ve got news to share about Craft Link List, the Craft CMS-focused newslet­ter I’ve writ­ten since May 2015. Craft Link List #127 was the last issue I worked on before hand­ing over the newslet­ter to the Craft CMS team. The deci­sion to stop writ­ing the newslet­ter was dif­fi­cult. The dia­gram above is from this tweet that I stum­bled upon in ear­ly Decem­ber. I book­marked it and kept com­ing back to it… + read on


Adding Date Val­i­da­tion Log­ic when Cre­at­ing an Event in Craft CMS 3

I have a Craft CMS site with two Date/​Time fields. One field is called calStartTime and the oth­er is calEndTime. The goal is to check that calEndTime does not hap­pen before the calStartTime. To do this, I have a cus­tom mod­ule. Head over to plug​in​fac​to​ry​.io to scaf­fold out a mod­ule. You could also do this in a plu­g­in, but a mod­ule is prob­a­bly eas­i­er. Lis­ten for the Entry::EVENT_BEFORE_SAVE event and then make sure the… + read on


A crit­i­cal error: Chromi­um revi­sion is not downloaded.

I have been try­ing to get crit­i­cal to work on my Mac but kept get­ting the fol­low­ing error when my web­pack con­fig­u­ra­tion hit the point where it was try­ing to con­fig­ure the Crit­i­cal CSS. Error: Chromium revision is not downloaded. Run "npm install" or "yarn install" at Launcher.launch (/Users/john/Sites/craft-w-webpack/node_modules/puppeteer/lib/Launcher.js:119:15) I tried fix­ing this by fol­low­ing the instruc­tions, npm install, but the error con­tin­ued to hap­pen. The path to get­ting this fixed had… + read on


Installing Imag­ick in Valet

When­ev­er I update to new ver­sions of PHP in my local instal­la­tion, I need to rein­stall Imag­ick. Since I look up these steps every time, I’m doc­u­ment­ing them here so future me can remem­ber this. ## Is Imag­ick real­ly not installed? First you might have it installed on your machine. Does this return a ver­sion num­ber? convert -version If so, you have it installed but it might not be wired up for… + read on


Fix­ing a Mari­aDB data­base that has a cor­rupt­ed root user password.

In one ter­mi­nal win­dow I did this: echo $(brew --prefix MariaDB) That gave me the path to my Mari­aDB of: /usr/local/opt/mariadb Then I ran this in that same win­dow: /usr/local/opt/mariadb/mysqld_safe That start­ed Mari­aDB suc­cess­ful­ly. Then I opened a 2nd ter­mi­nal win­dow. sudo $(brew --prefix mariadb)/bin/mysqladmin -u root password I fol­lowed the prompts to reset the pass­word to ”, i.e. blank. Then I killed the Mari­aDB cur­rent run­ning by… + read on


Syn­ol­o­gy, Plex, ports and miss­ing URLs

I’ve had a Syn­ol­o­gy for many years, and the inter­face has changed over time, obscur­ing use­ful infor­ma­tion for installed apps. One of my favorite apps to run on it is Plex. In the Syn­ol­o­gy inter­face, it used to be easy to open Plex. The URL was shown in the Pack­age Cen­ter” when look­ing up the app. Below is a screen­shot of how the inter­face used to look. This is not a screen­shot I cre­at­ed… + read on


Set­ting up Lar­avel Forge and DeployBot.

I’ve used Lar­avel Forge for quite a while in my work­flow. It’s a con­ve­nient way to set up servers, quick­ly add secu­ri­ty cer­tifi­cates, and deploy sites. I’ve got a num­ber of my own sites and client sites using it and I’ve been very pleased with it. ## The Lar­avel Forge deploy­ment process The piece of the process I’ve been think­ing about recent­ly is the deploy­ment method I’m using in Forge. The deploy­ment method built… + read on


Yeo­man gen­er­a­tors, the file sys­tem and symlinks.

Npm Updated Version Using Symlink Feature

I write and main­tain a Yeo­man gen­er­a­tor called Build A Ban­ner”, aka BAB. As you might guess from the title, the gen­er­a­tor helps in devel­op­ing ani­mat­ed dis­play ad ban­ners. It cre­ates a direc­to­ry with cus­tomized HTML, JS and CSS starter files, builds a small devel­op­ment serv­er with live-reload­ing, and has work­flows for opti­miz­ing and deliv­er­ing ban­ners… + read on