Embracing Windows 10

First off, I am a huge proponent for Linux, it has been my primary OS for many years. One of the first big projects I led was converting ETRADE’s production system from Solaris to Unix, running Linux on your production servers was a radical idea back in 2002. I’ve embraced and been a champion of […]

Hi!

My Lil Red Sprite, a 1960 Austin-Healey “BugEye” Sprite.

Create a Block in Typescript

I’ve been reading and learning Typescript recently, and I quite like it. The added type safety is a great feature to help create more error-free and stable code. You can read more about Typescript here. This got me thinking that it should be possible to create a WordPress Block in Typescript, which of course it […]

Kurt Vonnegut Buying an Envelope

When Kurt Vonnegut tells his wife he’s going out to buy an envelope: “Oh, she says, well, you’re not a poor man. You know, why don’t you go online and buy a hundred envelopes and put them in the closet?” And so I pretend not to hear her. And go out to get an envelope […]

Conditionally Load Block Assets, Part 2

Another look at conditionally loading block assets for WordPress blocks, assets being JavaScript and CSS files loaded by the browser. In the previous post, I solved using heavy-handed testing of each post in the loop checking to see if it contains our block to load the assets. The company I work for runs a few […]

Course Review: Writing in the Sciences

A review of the Writing in the Sciences online course that I recently finished. The course is taught by Dr. Kristin Sainania a Professor of Health Research and Policy at Stanford University. It is a free 8-week series of canned videos, online quizzes, and homework assignments designed to improve your writing. Course Structure Each week […]

Deploy WordPress Plugins Using Github Actions

Using automation makes your current life easier by taking tasks off your hands; plus makes your future life easier by documenting a repeatable process. I recently automated the publishing of my code-syntax-block plugin to the WordPress repository using the Github Action created by 10up. What are Github Actions First, Github Actions allow you to hook […]

Async is the Key to Distributed Work

I wrote A Year Working Remotely after my first year at Automattic — a company now at 1,000 fully distributed employees across 76 countries. This is a 6-year follow on sharing additional learning on work and productivity. A colleague Alister wrote a great post, Three Years of Working from Home, that covers personal care tips, […]

Conditionally Load Block Assets

Updated: see Part 2 post that explains a better way, as pointed out in the comments. Or see the newer Part 3 post with an even easier way with WP 5.8. One of the great features of the WordPress Block Editor is all the specialty blocks that can be created. This can also be the […]

Lessons from Walt Disney

On a sunny day, my family and I went up to San Francisco to visit the Walt Disney Museum. The museum is located in the beautiful Presidio near the Golden Gate Bridge. I simply hoped to enjoy a nice day out of the house, maybe something the kids would like–I didn’t expect to be inspired […]

Linting Markdown Syntax

Linting is the process to check code for potential errors and enforce a style guide, but linting is not just for code; you can lint markdown documents for the same reasons. Markdownlint is a Node package to lint markdown syntax, use markdownlint-cli for use on the command-line, or use the Visual Studio Code plugin for […]

Using the Pomodoro Technique

I recently started using the Pomodoro Technique to help me focus. I find it a useful productivity tool to fight distractions. The technique is a rather simple process: Set a timer for 25 minutes, Work focused on your task, When the timer goes off, take a short break (5min) Repeat After completing a few sets, […]

Build a Block Series – Part 7: Placeholder

In this seventh part, I do away with screencasting and work on improving the editor interaction with the QRCode block. Specifically, showing in the editor how the QRCode will look when published. Previous screencasts: Development Environment WordPress Plugin Anatomy of a Block Block Attributes ES6+ Syntax QRCode Intro One of the primary tenets of Gutenberg […]

Unix Crontab

Introduction cron is a utility that you can use to schedule and automate tasks. By defining items in the cron table, called crontab, you can schedule any script or program to run on almost any sort of schedule. A few examples: Download RSS feeds daily at 6:30am, Run a program 5 minutes after midnight on […]

Notes on Technical Writing

Over the past year, I’ve worked off and on documentation for WordPress. I started contributing during a launch freeze to help developers transition to the new block editor. I found I enjoy writing documentation, it is rewarding to craft quality documentation that helps people. Over time, I’ve read numerous resources on technical writing and documentation. […]

Bauhaus Centenary Block

To celebrate the 100-year anniversary of the Bauhaus design house, our team created a celebratory block for the WordPress editor, see our announcement post on Automattic.design. The Bauhaus Centenary block is available as a plugin with three styles – basic forms, year, and ribbon – that embraces the character, variety, and edge of the Bauhaus […]

Build a Block Series – Part 6: QRCode

In this sixth screencast I get down to implementing the QRCode part of the block: loading the qrcode.js library and trigger it using the saved URL to create a QRCode. Previous screencasts: Development Environment WordPress Plugin Anatomy of a Block Block Attributes ES6+ Syntax QRCode Implementation In the cast, I alter the block’s save function […]

Build a Block Series – Part 5: ES6+ Syntax

The fifth part of my series walking through building a Gutenberg block for the WordPress editor. This part takes a break from new block development to explain some features of ES6+ syntax used, specifically Destructuring assignments, Arrow functions, and Imports. Previous screencasts: Part 1: Development Environment Part 2: WordPress Plugin Part 3: Anatomy of a […]

Build a Block Series – Part 4: Block Attributes

The third part in my series walking through building a Gutenberg block for the WordPress editor. This lesson continues the anatomy of a block, specifically a block attributes. Previous casts: Development Environment WordPress Plugin Anatomy of a Block Block Attributes Attributes are the way a block stores data, they define how a block is parsed […]

Build a Block Series – Part 3: Anatomy of a Block

The third part in my series walking through building a Gutenberg block for the WordPress editor. This lesson covers the anatomy of a block. Previous casts: Development Environment WordPress Plugin Anatomy of a Gutenberg Block At its simplest, a block in Gutenberg is a JavaScript object with a specific set of properties. Here is the […]