Hi, I'm Marcus.

I'm a technologist and write about various topics here. I work at Hatch in California, previously Automattic & WordPress.

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 […]

Build a Block Series – Part 2: WordPress Plugin

The second part of my series walking through building a Gutenberg block for the WordPress editor. See Part 1: Development Environment. Part two covers creating a WordPress plugin and setting up the JavaScript build for block development. After this part, all the pieces are in place to start creating a block. WordPress Plugin A WordPress […]

Build a Block Series – Part 1: Development Environment

I’m kicking off a new series of screencasts for building a Gutenberg Block for the WordPress Editor. The intended audience is a developer who may not have experience with WordPress and/or JavaScript, so introductory level. The series will focus on building a QRCode block, that I have an idea for but have not yet built. […]

Good first issue on Gutenberg

This post and screencast walks through the process for how you can make your first contribution to Gutenberg. I walk through all my steps to submit this Gutenberg PR#18175 This follows up on my previous screencast for creating a Storybook story for Gutenberg components. Steps 1. Find issue to work on. Search using the good […]

Coding a Storybook Story

Being inspired by my colleague Jon Q videos for building a Gutenberg Component. I wanted to try my own, just focused on building the story part for Storybook. Q’s videos are great, they go deep into the thinking and details for designing components and a large component design system. My screencast is just short and […]

On Fruit Trees and Code Bases

A fruit tree planted in a nice sunny spot, given water and time will grow. It may not grow how you want or expect it to, but grow it will. Each branch of the tree does it’s job and sprouts new branches. All of them competing for sun, getting in each others way, and shooting […]

Switch from Ubuntu to Manjaro

I switched from Ubuntu to Manjaro for my primary Linux system, a Dell XPS laptop. I’ll cover briefly why, but the change is not nearly that big because I still use GNOME desktop which is more or less the same for both. I also use a Windows 10 desktop 😲 for games and other things […]

Allowing SVG in WordPress Content

I ran into an issue when trying to save SVG as part of a block. If you are having the same issue, or similar with non-typical tags being used; then here’s how you can fix it. In creating a Gutenberg block, adding an SVG element as part of the save() function it was being stripped […]

wpsync – Markdown to WP

wpsync is a command-line tool to sync a local directory of markdown files to your WordPress. I really like markdown and vim. My publishing process was: Create a draft in markdown, When ready to publish v1.0 copy-paste to WordPress; the editor converts markdown nicely, and then publish However, when a revision is needed, it must […]

Sports Books

In the March 14, 2019 episode of the Bill Simmons Podcast, Bill and the Sports Repodders go over their list of their favorite sports books, ones they recommend to read for up-and-coming writers and those interested in the craft. I’ve been looking for a good list of sports books to read, so I compiled their […]

The Story of the Laggy Mouse

A story as old as time, not all the stories involve computers and peripherals, but the tale is known by all do-it-your-selfers, home-depot-excursioners, and other fixers-of-small-things. It is a story told around camp fires, in fact one version of the story starts “So we were out of firewood…” My version starts with “So my mouse […]

Using Firefox user.js settings file

The Firefox user.js file stores user settings, the file is loaded each time Firefox starts. This a convenient way to save your browser customizations and apply them on different machines. The prefs.js file already exists in your Firefox profile directory, find the location using about:support in the top bar. The prefs.js file looks like it […]

Making the Juxtapose Block

This post walks through my process of creating the Juxtapose Block for the WordPress block editor. The block implements the JuxtaposeJS library by Knight Lab which allows you to place two images side-by-side and use a slider to reveal the difference between them. Here’s an example: 📌 Note: This block was integrated into the Jetpack […]

Block Rocking WordPress

WordPress 5.0 introduces a new editor based around blocks. The editor is the first phase of a larger project developed under the Gutenberg name. This post is part three in my unplanned series: Part I – Creating a Gutenberg Block from October 2017 covers how to extend Gutenberg with a basic block. I wrote a […]

Gutenberg blocks without the build step

You can create Gutenberg blocks in ES6 code without the build step, this makes it easier to maintain and develop. I switched over my Code Syntax Highlighting block and am much happier for it. All of the Gutenberg examples by default use ES5 code, which already does not require transpiling with webpack, but they also include […]

My Debugging Process

Here is the process I go through when trying to debug a tricky coding problem. First, I run a private personal blog which I use for debugging and taking coding notes. You can consider this your coding journal, and whatever tool works for you. I find something digital works better, since you can use HTML […]

Summer Sabbatical

My company, Automattic, has the wonderful perk of a 3-month sabbatical every 5 years. Amazingly enough, I’m already an old-timer and been there over 5-years, so this summer I took my sabbatical. I timed it to be off the same time as the kids for summer, so I didn’t work for June, July, and August. […]

Greatest Day in Fantasy Football

What was the single greatest day a player scored in fantasy football? It is an interesting question, and unfortunately, due to incomplete box scores from times of yore, it might not be answerable. After scouring through the data at Pro Football Reference, here’s what I found:   Rushing Receiving Return   Player Team Date YDS […]

Ubuntu Guide for Mac Converts

Here are some tips and tricks to help Mac users adjust to Ubuntu and Linux. I was a die hard Mac user ever since OS X was released in 2001. The combination of a Unix core and real desktop apps was a perfect match for desktop and development. However times change, with Apple’s focus on […]