Adam Garrett-Harris

Written by Adam Garrett-Harris, host of BookBytes and Web of Tomorrow podcasts. You should follow him on Twitter

Change Where Screenshots Are Saved on macOS

July 13, 2021

Open Terminal (by searching spotlight (by pressing ⌘ Space)). Paste in the following command and hit enter. From now on, screenshots will be…

Find Files with Extension

April 24, 2021

Over the past few years, I've moved a bunch of files from Evernote to DEVONthink to Keep It and finally landed on just storing them in…

Notification for Low Battery When Docker Is Running

March 29, 2021

Sometimes after work, I unplug my Macbook Pro and then discover (not that much later) that my battery is super low and I need to scramble to…

Opening DB Tables with Keyboard Maestro

March 29, 2021

We use Postico for managing our Postgres database at work. I made a Keyboard Maestro macro called "Open DB Table." It has no trigger…

Reload Development Webpage with Keyboard Maestro

March 29, 2021

I have a Keyboard Maestro macro where I can hit ⌃⌥⌘J and it will switch to Chrome, switch to the tab where I'm developing, and do a hard…

Emergency Alerts with Pushover

March 25, 2021

At my job, I am on a rotating schedule to respond to alerts when something is going wrong with our code. We use OpsGenie, which will send me…

Open All URLs for Work with Keyboard Maestro

March 25, 2021

I have a Keyboard Maestro macro that I run at the beginning of almost every workday (if these tabs aren't already open). It opens a list of…

Open IDE with NFC

March 25, 2021

Sometimes the hardest part is just getting started, so I've tried to make it easy to get started with work. I made a Keyboard Maestro macro…

Send Highlights From Goodlinks to Readwise

March 24, 2021

If you use GoodLinks for reading articles and you use Readwise for saving and remembering highlights from books/articles, you'll love…

BookBytes 42: So You Want to Talk About Race

March 23, 2021

On this episode of BookBytes , Jason and I are joined by a new co-host, Rizel Bobb-Semple . We talk about race and how to talk about race…

Talking Dudes: S03 Episode 32: Snowpocalypse

March 23, 2021

On this episode of Talking Dudes , I talk about my morning routine, Jonathan switched jobs during the snowpocalypse, and he's into timed…

Slack Urls to Quickly Message People

March 22, 2021

If you want to quickly message someone in Slack, you might think you can get a url to the thread with them by right clicking on your…

Helpful Zoom Keyboard Shortcuts with Keyboard Maestro

March 21, 2021

I started using these when the pandemic hit and I started working from home. It's really made using Zoom much easier. Hyper 1 = Mute/Unmute…

Posting to Slack with Shortcuts

March 20, 2021

I didn't want Slack installed on my phone as a way of separating work from personal. But I still wanted to be able to send out a quick…

2020 Time Tracking Report

February 10, 2021

In the middle of 2019, I started time tracking everything I do, and so 2020 is the first year that I have an entire year’s worth of data…

2021 State of the Apps

January 16, 2021

I’ve been listening to the "State of the Apps" episodes of Cortex since the end of 2017. Cortex #61: State of the Apps 2018 Cortex #7…

Couples Goal Setting Retreats

January 04, 2021

I think it was in early 2020 when my wife listened to an episode about couples goal-setting retreats on Bigger Pockets . I wasn't big into…

Picking Up Groceries with Shortcuts

January 03, 2021

I just updated my shortcut to pick up groceries. I've been using this since I started picking up groceries more when the pandemic started…

Using Zapier to Start Toggl Timers for Work Meetings

January 02, 2021

TLDR I use Zapier to send myself notifications before each event on my work calendar. From that notification, I can start a timer on Toggl…

2021: Year of Calm

January 01, 2021

TLDR After 2 years of The Year of Order, I'm focusing on a year of calm. Recap of Themes from 2019 and 2020 At the end of 2018, I started…

Days of Christmas Widget

December 31, 2020

I've been meaning to make a custom widget with WidgetPack and I finally did. My family and I have been celebrating the Twelve Days of…

Skype Url Scheme

December 30, 2020

I have been doing therapy via Skype since March instead of in person, and after ten months of opening Skype and calling my therapist…

Imprint: Searching For God Knows What (and More)

December 29, 2020

On this episode of Imprint , Jonathan and I talked about "Searching For God Knows What" by Donald Miller. The only book by him that I had…

2020

December 28, 2020

I read 39 books Started Imprint podcast Continued BookBytes podcast with a new co-host and caught up on editing Sort of continued Web…

Joining Standup Video Call Automatically

December 23, 2020

Like a lot of people, I've been working from home for most of this year. My team has a daily standup meeting every day. I got tired of going…

Giftful Is the Best Wishlist App on iOS

December 16, 2020

My wife and I like surprising each other for Christmas, but we still want to give each other ideas. We also want to coordinate gift giving…

How to Automatically Split Toggl Timer at Midnight

November 22, 2020

TLDR I made an automation that stops the current timer at midnight and starts another identical timer. There are 2 ways I came up with to do…

Automatic Time Tracking From Plex

July 09, 2020

TLDR I have a Webhook in Plex that goes to a zap in Zapier. That zap will start a Toggl timer (Watching Video) whenever I start or resume a…

Reading books with OmniFocus Automation

July 05, 2020

I read books on a couple of podcasts , which means that I need to finish reading the book by a certain date. I was using Joe Buhlig 's…

Starting Timers with Shortcuts (If It's Not Already Running)

April 20, 2020

I have a lot of shortcuts that start Toggl timers with Timery . But the problem was that I don't want to start a timer if it's already…

My WFH Desk Setup

April 18, 2020

I've been working from home for 5 weeks, since COVID-19 was declared a pandemic and I thought I would share how I have my work from home…

Appearance: Frontier Podcast

February 16, 2020

In my first guest appearance on a podcast, I talked with David "Ledge" Ledgerwood about podcasting, including how I started Web of Tomorrow…

2019

January 30, 2020

I read 34 books Hiked up to a waterfall alone Adopted my son Attended React Rally Took an anniversary trip to Portland Finished renovating…

My Favorite iOS 13 Features

January 30, 2020

I wasn't on iOS 12 long (I got an iPhone in Nov 2018), but here are some of my favorite features. The new volume UI Instead of covering a…

How to Make a Video From an Image and Audio File From the Command Line

April 17, 2019

I often need to combine an image and an mp3 file together to upload a podcast episode to YouTube . I was using Final Cut Pro, and I've…

Saboteur 2 Scoring Widget

February 06, 2019

tl;dr Scoring in Saboteur 2 is a little confusing, so I made a little widget to help me figure out who wins. The rules for figuring out who…

How to Use Paprika and AnyList Together to Grocery Shop for Meals

February 03, 2019

tl;dr Use a list called "Paprika" to export grocery items from Paprika to AnyList with the Reminders app. I use AnyList for my grocery list…

2018

February 01, 2019

2018 was a pretty crazy year! Here's a recap of some things (not in chronological order). I read 70 books I started working as a software…

BookBytes Podcast

March 05, 2018

I just started a new podcast called BookBytes with a few other developers: Safia Abdalla , Jen Luker , and Jason Staten . We plan on…

Reading Redux Part 2 - getState

February 21, 2018

Last time , I got Redux cloned to my computer, built it, ran the tests, and read the index.js file. Now, I'll read some more code. At the…

Reading Redux Part 1 - index.js

January 12, 2018

I got inspired by my friend, Safia Abdalla , who blogs about the source code of Node over at her blog . I can see how it's helping her get…

2017

January 11, 2018

2017 was a pretty great year! Here's a recap of some things (not in chronological order). I read 93 books I quit my job and got a new job…

2016

January 01, 2017

2016 was a pretty great year! Here's a recap of some things (not in chronological order). I read 75 books I switched to the mobile web team…

Strict Mode in JavaScript

December 04, 2016

I explain a lot of stuff that strict mode changed about JavaScript. Of course, this isn't a comprehensive list, but it's a lot.

You Can Define Functions Within a Loop

May 30, 2016

ES2015 allows you to define functions within a loop using the let keyword.

Don't Make Functions Within a Loop

May 08, 2016

The eslint/jshint/jslint error "Don't make functions within a loop" can be confusing. I explain why it can be a problem and what you can do…

How to Get Started Making Mobile Apps with Cordova

November 27, 2015

Cordova is a great way to make hybrid mobile apps using web technology (HTML, CSS, and JavaScript). This video explains how to get started…

Web of Tomorrow Podcast

November 24, 2015

I recently started a podcast about web development for beginners. I teamed up with my friend Riley Carrasquillo , who is new to programming…

How to Create Amazon Affiliate Links

October 07, 2015

I started using Amazon Affiliate links to see if I can earn a little money from my websites and when you go to get a link for a product, you…

How to Publish a Jekyll Development Branch with Netlify

August 20, 2015

I recently discovered Netlify, which is a static website hosting service. They have a free plan, which is perfect for test sites. You can…

Get The Current Year In Jekyll

July 25, 2015

At the bottom of several of my websites I have a copyright notice with the current year and I realized that I would have to go and update…

How to Start Learning Javascript

June 26, 2015

I first started learning "web development" when there probably wasn't such a thing as web development. There were webmasters. And I wanted…

Gitignore Generator Project

June 11, 2015

I was hanging out in Chicago while my wife was in class learning web design , and I thought I would make a website to generate a…

How to Bring svg Elements to the Front

June 06, 2015

Often, with svg visualizations, I need to bring an element to the front. For example, if two elements overlap, then when I hover on one, I…

How to Display Event Data With Jekyll

May 26, 2015

I recently added a list of upcoming events to a jekyll site, and wanted to document my method. Structure the Data First, create a file…

Starting a Podcast

May 16, 2015

My friend, Jonathan, and I decided to start a podcast, and so we did! You can check it out over at orbit.fm/talkingdudes . It's a podcast…

How to Redirect Pages in Jekyll

April 21, 2015

If you change the url of a page or post on WordPress, it automatically redirects from the old url to the new one. But since Jekyll is just…

How to Run Vim with Minimal Settings

April 05, 2015

Sometimes I just need to run a very simple version of vim to check something out, to test for a bug in Neovim, to make an animated gif , or…

How to Easily Embed YouTube Videos in Jekyll Sites Without a Plugin

April 04, 2015

If you're constantly embedding videos on your site, it can be a pain to include the YouTube embed code each time. And if you're hosting on…

Brain Crack

March 17, 2015

I know this video is 9 years old, but I only recently discovered it, and I love the idea here: that we don't execute our ideas because we're…

Vim Slides from Utah Code Camp

March 14, 2015

I had a great time talking at Utah Code Camp for the first time this year. Here are my slides if you want to check them out. Also, here is a…

New Css Transitions Controls in Chrome Devtools

March 13, 2015

A coworker of mine, pointed out an awesome new feature of Chrome Devtools. When you have a css transtition in the styles pane, you may…

How to Create Vim Animated Gifs

March 11, 2015

I wanted to come up with a consistent way to make gifs that show just one vim plugin at a time. Here's what I came up with. And here's the…

How to Switch from Vim to Neovim

March 10, 2015

I just switched over from vim to neovim, and it's really easy, in fact it's actually so easy that you can fit it in a tweet , but I wanted…

How to Switch from Vundle to vim-plug

March 10, 2015

I just switched over from vundle to vim-plug . Part of the reason why is because I'm now trying out Neovim , which allows for asynchronous…

What it Feels Like to Use Vim

March 08, 2015

Updated Vim Cheatsheet

March 07, 2015

I got so much great feedback on Reddit , that I decided to update my vim cheatsheet to make it a little bit more clear.

2014

March 01, 2015

2014 was a pretty great year! Here's a recap of some things. I got a job at Domo I learned d3.js I made a 2048 clone with d3.js I climbed…

How to Convert a Wordpress Site to Jekyll with Github Pages

February 26, 2015

I recently converted a site from Wordpress to Github Pages. It's not a fancy site. It's just normal pages and posts with contact form, so I…

Learning Emacs - Part 1

February 12, 2015

It seems like there are a lot of die-hard fans of vim or emacs out there, and if you use a console editor, you're in one camp or the other…

What I Look For in an Open Source Project

February 07, 2015

I don't have a ton of experience with open source, but I'm really starting to get into it. I've had some ups and downs as I've put some…

Vim Cheatsheet

January 26, 2015

Update - I've updated the cheatsheet here I was talking to my friend who works in IT and occasionally has to use vim. And he hates it. He…

Firebase Pianobar Widget

December 15, 2014

I've been using pianobar for a while now to listen to Pandora in the command line. I've also been experimenting with Firebase to make…

My iTerm 2 Setup

December 09, 2014

I started using iTerm 2 recently, mostly because of the ability to use the mouse inside tmux and vim so that my coworkers can still scroll…

Problem with tmux When Upgrading to Yosemite

November 17, 2014

When I updated to Yosemite and started tmux, I get this warning every time I open a new tmux window: But running this fixed the problem:

How to Learn Vim

August 17, 2014

I've learned vim over the past year. Here's some of the things I recommand to start learning vim. Don't learn vim unless you want to Here's…

Google Bookshelves Widget

June 02, 2014

I have previously made a Google Bookshelves Wordpress plugin , but since I'm not using Wordpress anymore, I thought I would build basically…

Mini 2048 Game

May 19, 2014

This weekend I decided to build a little clone based off of 2048, but instead of forking the main 2048 game , I decided to build one from…

Android Automation

April 11, 2014

In my last post about releasing for android, I had a long list of commands that you had to run, to finally create a releasable apk file…

Here's how I created 20,000 fake contacts on the iPhone

April 10, 2014

I needed to get a large number of fake contacts onto an iPhone recently for testing purposes, but I couldn't find any example data that I…

Remote Debugging in Phonegap with Chrome Devtools

March 07, 2014

The requirements are: Phonegap 3.3 or higher An android device running Android 4.4 Kitkat or higher Chrome 30+ on the desktop Here's the…

How to Get Phonegap Working on Mac OS X Mavericks

October 31, 2013

After I upgraded from Mountain Lion to Mavericks, all of a sudden, phonegap wasn't working anymore. I noticed that the problem was that it…

How to Precompile Handlebars Templates

October 23, 2013

First you need to install handlebars with node by running this command. If you don't have node, go ahead and install it first . It's…

How to Use the Paypal Phonegap Plugin for Android

October 19, 2013

Update - The PhoneGap Plugin is now deprecated Here's a quick tutorial on what I did to accept paypal payments on android with the PayPal…

How to Setup Remote Debugging in Phonegap

October 17, 2013

Update - There is now an easier way to debug android apps in android Kit Kat (4.4.2) without needing to use weinre ( Remote Debugging in…

How to Sign and Publish a Phonegap App in the Google Play Store

October 16, 2013

Update - I've now figured out an easier way to do this in one command instead of 5 ( Android Automation ) So you've got your awesome app…

STAR Council Website

October 13, 2013

I had the privilege of working with STAR Council, which provides substance abuse education and treatment, in Texas, and has its main…

The Church at Round Rock Website Redesign

August 14, 2013

I recently got to help my friend Robert install and customize a new theme for his church's website. It uses the Churchope theme, which is…

Kaye Tolson - Music

May 22, 2013

I had the opportunity to put together a site for Kaye Tolson, a local musician from my hometown of Stephenville Texas. It was a lot of fun…

Paradigm Church App

March 07, 2013

I just launched the app for Paradigm Church with pulls data from their website ( paradigmchurch.com ). It allows them to log into their…

Paradigm Church Website

March 06, 2013

When my good friend, Nick Cooper at Paradigm Church in Norman Ok, asked me to make him a smartphone app, I said yes, because I've always…

The Church At Round Rock

February 11, 2013

My friend Robert Stephens just started a church plant in Round Rock. When I found out, I really wanted to lend my services and help out with…

Another Free Wordpress Plugin

November 02, 2012

After I made the Starbucks plugin, I realized that I keep track of all of my books that I'm reading in Google Books, but there wasn't a…

Parallax Scrolling Responsive Site

October 26, 2012

I just launched a new site for my best friend to promote a Bible study he's hosting for 20 something year olds called 20something. I…

Fitness Blog

October 03, 2012

I had a lot of fun putting this site together for my brother-in-law, Paul Jordan, who is a beachbody coach and personal trainer in Portland…

Personal Site for Journalist

October 02, 2012

I made this for my good friend who happens to be my wife's best friend. She's the Religion Editor at Tyler Morning Telegraph. This is just a…

Resume Site

September 20, 2012

This is a responsive site that I made for my best friend. Since the whole point of the website is to display his resume, I decided to use…

Wordpress Plugin To Get Free Coffee

September 19, 2012

Update - This plugin is no longer supported because Starbucks changed their site so that you now have to login to reload your card, which…

Larinda Ray - Real Estate

August 23, 2012

I'm very excited that I just launched the first site in my new business! Larinda Ray was great to work with. She wanted a simple site to…