This is an example of generating category filters for Jekyll posts with Isotope. You can find the code for this page on GitHub and a writeup about it in the Projects section.

Altcoin Research: What is Sia?

This month I'm spending some time researching altcoins. I'm posting my notes on First up: Sia.

Persistence with Chrome Dev Tools

TIL that you can save changes you make with Chrome Dev Tools directly to your disk.

CSS Confetti

TIL how to make confetti with CSS. No javascript needed.

WordPress Template Hierarchy

TIL a ton about the WordPress template hierarchy and the conditionals that select them.

Genesis Framework's Hooks and Filters

TIL about Genesis hooks and filters.

100 Highlights of 2017

Derek Magill's 100 Things That Made My Year post inspired me to write one, too. Here are my 100 highlights of 2017:

CSS Grid

TIL about CSS Grid

Basic Elements of Communication

TIL that all forms of communication can be described by the same process, no matter the sender, receiver, or medium.

Guidelines for Putting Your Projects on Display

We emphasize the importance of working out loud throughout our curriculum. Each of our participants make portfolio sections on their websites where they collect projects they've built. How you package and present your projects matter as much as the projects themselves! Here are some general guidelines for what makes a good project write up.

My WordPress Development, Testing, and Deployment Workflows

Using Homestead, WPengine, and Git.

Remember to Ask for Help

I don't know all the answers, even if I think I do. Sometimes I need to ask for help.

Turn Your Defeat Into a Growth Story

How do you address being fired when asked in an interview? Turn it into a growth story.

Responsive Breakpoints in Sass

How to structure responsive breakpoints in Sass, with examples.

10 Steps to Becoming a Manager

I saw this question on Reddit: I recently graduated with a degree in business management, but I’m having a hard time finding a management job. I’m not getting any interviews because I have no experience. What can I do? Here is my answer.

A Crystemas Goman

A translation of my favorite passage of Sir Gawain and the Green Knight to mark my own Christmas Game.

How can I come up with more ideas?

The old saying, 'You are what you eat', applies to the creative process. If you want to be creative and come up with ideas, the best thing you can do is engage the creative ideas that are already out there. Not because you want to copy or emulate them, but because creative ideas catalyze other creative ideas.

My BTC, BCH, and Ripple Strategies

The past few days have been quite a ride in the crypto world! This rollercoaster is reminiscent of late 2013, except now there is much more skin in the game. My latest piece on covers my history with BTC, BCH, and Ripple, and my investment and use strategies for the currencies.

Does the Environmental Case Against Bitcoin Have Merit?

I'm not sure that we have a bitcoin-caused environmental energy crisis on our hands. This piece on points out some of the issues with the articles going arount about bitcoin and the environment.

Selling Photos on

I'm testing out an idea on If you pay and then a section is revealed to you, that doesn't have to be just for articles. It can be used for anything digital!

Bulk Clearing Expiration Dates in Restrict Content Pro

At Praxis we use Restrict Content Pro as the membership system for our curriculum portal. We decided that all grads get access for life, not just during the program. So, I needed a way to clear over 200 member expiration dates. Here is how I accomplished that task with SQL.

Adding Months to a Calculated Date in Salesforce

Adding dates is tricky. Months have different numbers of days, so you can't rely on just adding 30 days to get an extra month. You also can't just add a certain number of months because formulas in Salesforce don't auto increment the year. The solution is modular arithmetic and conditionals.

Automating MySQL Backups with Gulp

No more forgetting to export the database regularly.

Fixing s3_website Java 9 Error with jEnv

s3_website doesn't work with Java 9. Use jEnv to define an earlier version.

Making line height work with spans

Line height doesn't work on spans by default


Using d3.nest to transform stacked data.

Giving Atom a try

Switching IDEs after 10 years.

Gulp and Sketch first use notes

Gulp and Sketch first use notes

Simple Microblog WordPress Theme

When I learned about the project by Manton Reece, I decided that I wanted to host my own microblog, so I made a minimalist microblogging WordPress theme for that purpose.

Creating Consistently

Creating is awesome. Creating consistently is even better. Here are some strategies for being consistent in your creative endeavors.

Why I Set Personal Deadlines

We all understand the importance of setting deadlines at work. Everything revolves around intentionally set deadlines and there are consequences if they aren’t met. Deadlines are a useful tool at work to keep progress moving forward. If there were no deadlines and no consequences for missing them, how many projects would realistically get done?

Running Zapier Actions During Business Hours Only

Two weeks ago I had a problem I wanted to solve with Zapier: Only running a particular Zapier action during business hours and delaying everything that happens outside of business hours until the next day.

HTML and CSS Basics for WordPress

Resources for Wordpress users who want to use HTML and CSS to alter the structure, look, and feel of their themes, posts, and pages.

When is the last time you sent a Thank You note?

Sending a thank you note is one of those pieces of common wisdom we always hear, yet an astonishingly low number of people actually do it.

Yes, There are Stupid Questions

You should never ask someone else a question without first attempting to answer it on your own.

Get the Most out of Your Kindle with These 4 Tools

Take screenshots, get reading statistics, export your highlights, and remove the ads from your Kindle.

Taking a Day Trip to Joshua Tree from LA

Taking a day trip from Los Angeles to Joshua Tree National Park is completely doable as long as you plan ahead. Here is what you need to know.

My WordPress Stack

Here are the tools, hosts, themes, and plugins I use to build WordPress sites quickly and get the most out of them after they launch.

The Afternoon Check-in

Two and a half months ago I started asking myself two simple questions every afternoon and I've seen a clear improvement in my mood as a direct result. Don't take your mood as a given. You are in control and can take actions to improve it.

How to Hit Reset and Keep Going

We’ve all been there: It is 4:30pm, our energy is low, we have at least four hours of work left to do, and we feel like giving up and taking a nap. Here is what I do to hit reset and keep going.

My Setup and Tools

I often get asked about what I use to get my work done. This post will be updated regularly with my current toolkit and setup.

Adding Full Width Front Page Widgets to Genesis Themes

Most Genesis themes don't allow content to go edge-to-edge out of the box. Here's how to add a new full width widget area to your Genesis theme.

Moving your Jekyll Site to Amazon S3 and Cloudfront with Outside DNS

Are you moving your Jekyll site from shared hosting over to S3 and Cloudfront while using your own DNS? Here is what you need to do.

3 Lesser-Known Hubspot Tools

Do you use Hubspot? Here are three lesser-known Hubspot tools to help you get the most out of your marketing and sales workflows.

At Praxis, Commitments Are Better Than Rules

Commitments are a key part of our program. Praxis is not the kind of product that can simply be purchased and sat on a shelf.

The Great American Road Trip

I got the chance to spend a week driving from coast to coast with my parents last summer. We started just north of Seattle, took Route 2 across Washington, Idaho, Montana, North Dakota, Minnesota, and Wisconsin, then went across the UP and drove down through Michigan, then across Ohio and Pennsylvania on I-80 to NYC. Here are my notes from the trip.

Do More. Improve on it. Repeat.

Do you want to be on top in your field? The bar is lower than you think, but few people even attempt to jump it.

How to Serve Static Website Assets from Amazon S3

Earlier this week I looked at my web hosting's usage stats and decided that I needed to move a bunch of static assets somewhere else because they were eating my available bandwidth. I decided to use Amazon S3, and to my surprise, it took less than an hour to get everything up and running.

Book Review Jekyll Collection Template

A book review template for Jekyll sites using Collections. Complete with a star rating system.

Cook Like Chuck 2016 Gift Guide

Christmas, Hanukkah, and Kwanzaa are quickly approaching. Here are some gift ideas for your friends and family who like to spend time in the kitchen. Everything is under $50, half of the list is under $30. I approve of it all.

Our Inflated Thanksgiving, 2016 Edition

It’s not just the balloons at the Macy's Thanksgiving Day Parade that are inflated. At first glance, it seems like the price of food has trended upward since 1986. Once you adjust for inflation, however, you get a different story.

Sol LeWitt's Wall Drawings 852 and 853 with D3.js

Learning all about D3.js's area and sorting functions to implement Sol LeWitt's Wall Drawings 852 and 853 with random generation.

Make Your Own Sol LeWitt 614!

I took my implementation of Sol LeWitt's Wall Drawing 614 using a D3.js Treemap and made it possible for users to change the number of rectangles and the width of the bands. Now you can make your own!

Sol LeWitt's Wall Drawing 614 with D3.js Treemap and Randomization

Implementing Sol LeWitt's Wall Drawing 614 with D3.js Treemap and randomization.

Sol LeWitt's Wall Drawing 289 with D3.js Transitions

Implementing Sol LeWitt's Wall Drawing 289 with D3.js transitions, randomization, and responsiveness.

Sol LeWitt's Wall Drawing 86 with D3.js Transitions

Implementing Sol LeWitt's Wall Drawing 86 with D3.js transitions, randomization, and responsiveness.

Sol LeWitt's Wall Drawing 87 with D3.js Transitions

Exploring Sol LeWitt's Wall Drawing 87 with D3.js transitions.

Praxis Data Workshop - Telling a Stronger Story with Data Visualization

The video, slides, and notes from my Praxis workshop on data analysis and visualization.

Sol LeWitt's Wall Drawing 391 with D3.js

Design decisions and notes I made in implementing Sol LeWitt's Wall Drawing 391 with D3.js.

Sol LeWitt's Wall Drawing 11 with D3.js

Design decisions and notes I made while implementing Sol LeWitt's Wall Drawing 11 with D3.js.

Sol LeWitt's Wall Drawing 56 with D3.js

My first attempt at implementing Sol LeWitt's work on the web! Here are the design decisions and notes I made while implementing Sol LeWitt's Wall Drawing 56 with D3.js.

Category Filtering with Isotope in Jekyll

This is the most recent addition to my Jekyll Tools repository on GitHub. Isotope is a popular jQuery filtering and sorting plugin. I combined it with Liquid to generate category filtering in Jekyll.

Point Reyes National Seashore

Amanda and I spent a few days in California wine country at the end of March before we drove over to Yosemite. We were kind of disappointed in wine country because we expected to learn a lot more than any of the tour guides seemed to be interested in teaching us, so we took one of the days and drove over to the Point Reyes National Seashore. That turned out to be a great idea.

Jekyll 3.2 Undefined Method Downcase Error

Here is how to get rid of a pesky Jekyll undefined method downcase error.

Comparing Sheet of Data in Excel

How to compare data columns of data from different sheets in Excel.

Smooth Pie Chart Transitions with D3.js

This tutorial shows how to make smooth transitions in a pie chart using d3.interpolate.

Let's Update a Pie Chart in Realtime with D3.js

This tutorial builds on previous work and updates a pie chart in realtime.

Yosemite National Park

We love going to national parks in the spring. The weather is cool, the parks aren't crowded, and the waterfalls are spectacular due to snowmelt. Here is a small collection of photos I shot in Yosemite at the end of March 2016.

Let's Make a Pie Chart with D3.js

Here I learn the basics of making a pie chart with D3.js

Let's Make a Grid with D3.js

This tutorial is a way to apply what I learned about data joins, click events, and selections in D3.js. Along the way I learned about building arrays.

Fun with Circles in D3

Learning D3 by playing with circles

D3 Intro and Joins Notes

Notes from the Introduction and Thinking With Joins


Emmet is a tool that expands your HTML and CSS workflow.

Relearning D3.js

How I'm relearning D3.js.

Error Document Handling with .htaccess

TIL how to forward error pages to real pages with .htaccess.

Loading scripts in Wordpress with wp_enqueue_scripts

Here is how to load scripts on specific pages in Wordpress with wp_enqueue_scripts

jQuery replaceWith

TIL how to quickly replace elements with jQuery

How to Implement Search on a Jekyll Site

TIL how to implement search on a Jekyll site.

How to Back Up Your Online Life

Your stuff in the cloud could disappear at any time. Here is how to download a copy of your data from popular online services. (Written by me, published on Medium)

Moving Files to a Mac from Microsoft Remote Desktop

TIL how to copy files from a Microsoft Remote Desktop connection to my local machine.

Setting and retrieving cookies from form data

TIL how to set and retrieve JavaScript cookies from form data.

Powering a Blog Through Medium

It is super easy to power your blog with a custom domain through Medium. Here is what you need to do.

iOS 10.0 Public Beta Thoughts

The iOS 10.0 Public Beta came out Thursday, July 7, 2016. I installed it within a few hours of its release and began using it on my main phone. Here are my thoughts so far.

How to Pre-fill Google Forms

Did you know that you can pre-fill Google Forms based on a URL? Did you also know that automate it with a database and send personalized forms via services like Mailchimp?

Take Notes During Your Next Crisis

TIL that the best time to learn how to handle crises is right after you just had one.

jQuery's Greater and Less Than Selectors

TIL about jQuery's greater and less than selectors

Scheduling Jobs with Cron

TIL how to schedule tasks with Cron.

Posts Heatmap Calendar for Jekyll

This heatmap calendar gives you a visual representation of when you posted on your Jekyll site.

DNS Terms Cheatsheet

Automating Blog Posts with AppleScript v2

Today I took another stab at automating my blog posts.

Many-to-Many Relationships in Relational Data Models

Today I learned about Many-to-Many relationships in relational data models

Trifacta Wrangler

TIL how awesome Trifacta Wrangler is for transforming and digging through data.

Linux Webserver Cheat Sheet

TIL where to find certain things on Linux servers

Cleaning up your Mac with Hazel

Today I learned how to clean up my Mac with Hazel

Using Word Frequency Charts for Better Word Clouds

You can use word count charts to complement word clouds for better understanding.

Isaac Morehouse Podcast Episode 75 - How to Learn Anything, with Chuck Grimmett

How to learn anything:
1. Spend a focused hour reading and watching videos to pick up the basics of what you want to learn.
2. Apply those new skills immediately by working on a tiny project that uses what you just researched and gives you the opportunity to pick up more skills along the way.
3. Get constructive feedback on your tiny project from people who know more than you do in that field.
4. Repeat.

If you want to learn more, check out this episode of the Isaac Morehouse podcast!

Ember.js Basics

TIL the basics of Ember.js.

Link Posts with Jekyll

TIL how to make link posts a la Daring Fireball and with Jekyll.

Snack Time Episode 3 - Negroni Week

Episode 3 of Snack Time is out! Sean and I celebrate Negroni Week on the air. We discuss recipes, bitters, art, hipsters, and glassware. I get a little tipsy and say "incredible" too much, and I have minor recording issues that I'll fix on the next episode.

Counting and JSON output in Jekyll

TIL how to count and make JSON output in Jekyll

Photo Metadata Analysis Project

A post-game write-up of what I learned from a recent personal data project, complete with instructions so you can try it!

Glacier National Park

Last year Amanda and I visited Glacier for a couple days before the official start of the summer season. Going to the Sun Road was still closed, but we avoided the crowds, explored the park in solitude, took in the wonderful scenery, and ran into some incredible wildlife. Here is the best of what I shot over three days in Glacier.

Identifying and killing background Python processes

TIL how to kill rogue background Python processes

Simple HTTP server with Python

TIL how to make a simple HTTP server with Python

Regex Lookahead and Lookbehind

TIL how to do lookarounds in Regex

Responsive D3.js bar chart with labels

TIL how to make

Strange issues with stacking on iOS Safari

Safari on iOS and Safari on Mac OS X are not created equal.

Having trouble accessing your website from Google's public DNS? Check your DNSSEC.

Having trouble accessing your website from Google's public DNS? Check your DNSSEC.

Web crawlers, Regex for Markdown URLs, and Removing your site from Google search results

TIL about some resources for making web work easier.

Circular Progress Bar Count Up with Javascript

I used ProgressBar.js to build a date counter that counts up from a particular point in time visually.

Converting an Aperture Library to Lightroom

Converting Aperture photo libraries to Lightroom

Snack Time Episode 2 - Our Biggest Pfand

When you enjoy a beer in Germany, there's a very good chance that the bottle you're drinking out of wasn't the first time it was filled with Berliner Kindl. This time on Snack Time we talk about recycling glass and the German bottle deposit system.

Amending Commits, Matplotlib, and More Python

Today I collected the things I learned in the past week.

Toggling divs with jQuery

Today I reminded myself how to toggle divs with buttons.

Javascript Counter

TIL how to make a javascript counter.

Running other scripts with AppleScript

TIL how to run other scripts with AppleScript

Reading CSVs, counting, lambda expressions, and plotting with Python

TIL how to read CSVs, count, order via lambda expressions, and plot with Python.

Dealing with Files in AppleScript and Conditional Counts in Excel

TIL how to deal with files in AppleScript and how to do conditional counts in Excel.

Steph Curry's Advantage (Or How to Become a Leader in the NBA)

How do you become a leader in the NBA? Take more shots than everyone else.

Excel formulas to combine columns and convert time, More SQL functions

TIL how to concatenate columns and convert time in Excel and some more SQL functions.

Aliases in SQL and Sorting Tables with jQuery

TIL how to make aliases for tables in SQL and how to sort tables with jQuery

There are Multiple Paths to the End Goal

TIL there are multiple paths to every end goal and sometimes you need to try another one instead of spinning your wheels.

Summing with Filters in Excel, Reminding Yourself "Why"

TIL how to sum in Excel with filters and a trick for bringing myself back in perspective.

Textures and Colors of Yellowstone

Last year Amanda and I visited Yellowstone for a couple days before the official start of the summer season. It was chilly and some roads were closed due to snow, but we avoided the crowds and got to explore the park in relative solitude. Here are the best photos I shot over two days. I took a few landscapes, but I mostly focused on the colors and textures I encountered.

Hiding Categories from the Jekyll Paginator, Unless, and Insert statements

TIL how to hide my TIL posts from the front page of my site, the Unless tag, and inserting mysql with PHP.

Snack Time Episode 1 - Supreme Court Nominations

Sean and Chuck are launching a podcast! This first episode is a bit rough around the edges, but it is a start of great things to come. We discuss the Supreme Court vacancy left by Scalia's death and what happens during the nomination process.

Connecting and Writing to MySQL with PHP

TIL the basics of connecting to a MySQL database and creating tables in PHP.

Wordpress Plugins, Development Planning for New Developers

TIL a new-to-me development philosophy and the basic parts of creating a Wordpress plugin.

Easier Syntax Highlighting, Downloading Email Followers, and Jekyll Tools

TIL about easier syntax highlighting and how to download email subscribers in a CSV.

Jekyll Tools

A collection of Liquid templates I made for my Jekyll-powered blog: Adding open graph and Twitter cards, Disqus comments, posts by tag, a heatmap calendar for posts, and a book review template.

Infrastructure and Git Best Practices

Today I learned about best practices in development infrastructure and git.

Checking for Keys and Looking Up Values in Arrays, Restricting Files in .htaccess

TIL how to check for keys and look up values in arrays, as well as how to restrict files via .htaccess.

Basic Logging with PHP and Syntax Highlighting in Jekyll

TIL how to do basic logging to CSV in PHP and how to highlight syntax in Jekyll.

Thoughts on Providing Solutions, Learning, Culture, and Distractions

I didn’t do much technical work today besides some front-end debugging. Instead I did a lot of administrative and project management work and ended up thinking a lot about how I work.

Unicode Conversions in PHP and Remote Git Repos

TIL how to convert unicode characters in PHP and I released my first personal project on Github.

Toggl Slash Command for Slack

My first personal project that I released on Github - A custom slash command that enables users to put time entries into Toggl from Slack.

CSS Inheritance, Datetime Conversions in PHP

TIL about date/time conversions in PHP and a lesson about automatic inheritance in CSS.

Doing the Work, Flipping the Status Quo, and Alphabetizing in Liquid

TIL how to sort tags alphabetically in Liquid and I did some reflection on work and the status quo.

How to keep track of files and requests in Slack

TIL how to keep track of files and requests in Slack.

Useful Analytics, Scalability, and RSI

Today I learned how to tackle my RSI issues and I thought about useful analytics and product scalability.

Meteor Basics, Secure Hash Algorithms, and 404 Error Pages

TIL the basics of Meteor, how to tell Apache where to find your 404 page, and all about secure hash algorithms.

Readable Code Snippets, VPN Clients, and Privacy

TIL how to make code snippets pretty, which VPN client to use, and common misconceptions about privacy.

Photoshop Patterns, Homestead Provisioning, Composer Basics

TIL two ways to tile patterns in Photoshop. One is manual and time consuming, the other is fast, easy, and less prone to error. I also re-learned some stuff about Homestead and Composer.

Automating Drudgery, Project Planning, Parent Selectors, and Find and Replace

TIL about what to consider when architecting and planning out a software development project, how to automate the tedious parts of my TIL posts, how to tackle the lack of parent selectors in CSS, and project-wide find and replace in Coda.

Jekyll Upgrades and Liquid Templates

TIL about upgrading Jekyll from 2 to 3 and how to make a TIL index template in Liquid.

Pull requests, scraping Reddit, and flexbox quirks

TIL about creating pull requests on Github, accessing Reddit's APIs with Python and storing that data in MySQL, and quirks with CSS's flexbox module

Five Minute Journal TextExpander Snippets

A few days ago I listened to Tim Ferriss’s show on The Magic of Mindfulness and learned about the Five Minute Journal. I made some TextExpander snippets for it.

Single iPhone Home Screen

For the past two weeks I’ve been using a single iPhone home screen configuration a la CGP Grey.

Follow-up for Praxis

I joined Praxis for a group discussion last night on technology and building a personal website. Here are the apps, services, and pieces of advice I mentioned during our conversation.

Faux Basecamp to Slack Integration

A few weeks ago, Slack rolled out a very useful email integration. I didn’t think I had much use for it at first because Slack drastically cut down on the amount of email I receive.

Spotlight on Speech Codes 2015 Animated Web Infographic

I took a static infographic made by a client in Illustrator and applied some web magic to make it animated and interactive. Along the way I developed stronger JavaScript, jQuery, and CSS animation skills.

Our Inflated Thanksgiving

For the past 29 years, the American Farm Bureau Federation has conducted an informal survey of the price of a classic Thanksgiving dinner for 10 people. At first glance, it looks like the price of food has been steadily rising. But when you adjust the numbers for inflation, you get a different story. It isn’t the cost of our food that has been rising, but the amount of US currency in circulation.

Rebuilding Mogadishu with Local Knowledge

Underneath the bombed-out buildings and bullet-riddled doorways of Mogadishu lies a vibrant marketplace and hidden infrastructure known only to locals. Mitchell Sipus is trying to make that data public that with his “project to digitally map Mogadishu, encoding not just geography but also businesses, infrastructure, and people” (Wired).

Illum Light Graffiti

A photography project that explored the light, exposure times, and shadows.