Blocking Websites on a Schedule With Pi-Hole

I’ve written about blocking adds and distracting websites before as part of my digital minimalism crusade. I’m a big fan of thinking through your lifestyle design and automating decisions as much as possible.

For instance, after 9pm at night and before 7am there’s a set of distracting websites that I do not want myself, or anyone in my family, to be able to access. This introduces just enough friction to bad behavior (like scrolling Twitter at 9pm) that it prevents me from doing the wrong thing.

Below I’ve described how I block (and then subsequently allow) websites on a schedule, and some other misc related trick with the Raspberry Pi & Pi-Hole.

Block Sites on a Schedule

I wanted to block my Roku TV based on my cron schedule. However, the TV uses a bunch of different subdomains across various services. With a /etc/hosts blocking method, you can’t block domains based on a pattern, but you can with pi-hole.

The --wild command converts your domain into a wildcard regex to match the domain of any subdomains.

For example, if you have a blocklist file containing a simple list of URLs:

facebook.com pinterest.com amazon.com netflix.com feedbin.com disneyplus.com roku.com youtube.com twitter.com

Your block.sh would look like:

blockDomains=$(<blocklist) for domain in ${blockDomains[@]}; do pihole --wild $domain done

Note that the position of the -d is significant in your allow.sh:

blockDomains=$(<blocklist) for domain in ${blockDomains[@]}; do pihole --wild -d $domain done

Here’s a great discussion about how to block groups in Pi-hole.

Running Pi-Hole & Scheduled Blocking on Docker

I’ve codified most of this into a docker container and related docker-compose.

Whitelist Alexa-related Domains

If you block amazon (which I recommend to avoid buying stuff or getting sucked into prime video), you may want to whitelist alexa-related domains so they work inside "blocked hours". Here are the domains you want to whitelist (and here’s a script to do it):

bob-dispatch-prod-na.amazon.com avs-alexa-14-na.amazon.com api.amazon.com api.amazonalexa.com latinum.amazon.com DDNS with Dreamhost

Sometimes, if you are running a VPN or a node on a service (like Storj) you’ll want to have an external domain available which points to your network IP.

I have a dreamhost server that runs a couple of WordPress sites for me. They have a nice API for modifying DNS records that can be used to dynamically update a domain record which points to my home network.

Here’s the modified dreamhost script that worked for me (I couldn’t get the PR for this merged). Here’s how to set it up as a cron on the pi:

crontab -e @hourly bash -l -c 'DREAMHOST_API_KEY=THEKEY DREAMHOST_UPDATE_DOMAIN=subdomain.domain.com /home/pi/Documents/dreampy_dns/dreampy_dns.py'

Watch the logs:

tail -f /var/log/cron.log

To test to make sure it’s working (from a server outside your network):

telnet node.thesite.com 28967 Even better: DDNS with Dreamhost + Docker

You can also run this as a docker image. Here’s an example docker-compose.

Blocking DNS over HTTP

iOS and specific websites on macos use DNS over HTTP. This breaks the blocking rules you setup on pihole. You can configure pihole to reject all DNS over HTTP queries.

Here’s what this looks like in the pi-hole interface:

Here’s how to do this on the command line.

Blocking Spam, Porn & Other Sites on Raspberry Pi

Block List Project has a great index of various site groups you can block, including porn. Here’s another block list.

Navigate to Group Management > Ad List and then pick the "Original" version of the lists on the blocklist project.

Here’s a script which does this.

Continue Reading

My Process for Intentional Learning

Lately, I’ve been able to carve out dedicated to learning new skills. What I’ve learned has been random, from programming languages to how to build a tiny house. I’ve found a lot of joy in learning new skills, slowly becoming a generalist.

Over the last year, I’ve found you can optimize your "learning time" by thinking through the process of learning before you start. In my experience, picking a learning project, and creating a "learning log" for each skill is hugely helpful.

Identify a Learning Project

Learning in a vacuum doesn’t work for me.

I love reading fiction, but reading a topic that I have no immediate need to understand makes it much harder to comprehend. When I’m motivated by a problem I’m trying to solve, I can plow through books and other information quickly. Without an immediate need, I’ll read the same page many times or fall asleep with the book in my hand.

In other words, learning something Just in Case doesn’t work for me. It has to be Just in Time.

This is why a ‘learning project’ is really important. A small, useful, and preferably time-bound project that requires new skills to complete. The project is a forcing function for learning new skills. You want a project where the pain of leaving it half-done is painful.

For example, when our second daughter was born, I knew she would need the room in our house that I was using as an office (I work remotely). I could move into a room in our basement, but I loved having a large window in the room and for some reason, I didn’t want to work in a basement. So, I decided to build a tiny house to work in.

I’d never built any physical thing in my life before.

I knew I’d lose motivation once I started it (especially as the Colorado summer heat ramped up). I ordered a massive truckload of wood and dumped it in my driveway and built the initial foundation. I knew our new daughter would need my room at the end of the summer and it would become too cold to make real progress on it by October.

These factors created enough motivation to force me to finish the project when I didn’t want to. I’m glad I did! By building a mini house I learned most of the handyman skills I’ve been wanting to learn for years—the perfect learning project.

Before jumping into learning something new, take some time in picking your learning project.

For instance, let’s say you wanted to learn software programming. You could take a bunch of online courses or start reading random tutorials online. You could spend a bunch of money on a coding bootcamp, or join something like Lambda School.

However, you could also find a a simple job on UpWork that feels simple & small enough for you to figure out. This provides a context and specific application for your learnings and the extrinsic motivation to finish the work (there’s someone on the internet trusting you to get this thing done for their business).

Structure Your Learning

After you’ve picked a project, I’ve found it to be helpful to structure your learning process by asking some questions (here’s a post that roughly follows this structure):

What’s your learning project? Example: build a tiny house or automatically mark RSS articles as read What does success look like? This prevents you from following rabbit holes and forces you to finish the project. Example: build an insulated tiny house (not painted, not drywalled) or a script which marks articles more than two weeks old as read. What ‘open questions’ do you have? What are the gaps in your knowledge that would prevent you from completing the project? Write these down at the top of the document. What tools are you missing? This won’t be apparent to you at the outset, but as you start learning you’ll find friction in your process that you’ll want to eliminate. For instance, I found that the hammer I had was hard to use. I noted this down and found that $10 bought me a much better hammer. Or, in the context of programming, your IDE autocomplete may not be working in the language you are learning. What are some of the top books, tutorials, YouTube channels, etc that align most closely with what you are trying to do? What completed pieces of work are similar to what you are trying to do? For digital projects, this could be open source projects or raw asset files for a media project. Is there a community (online or otherwise) around the thing you are learning? Documenting the places where friendly people on the internet, who are obsessed with what you are learning, is super helpful. You’ll remember to ask them a question when you get stuck!

With this information in place, I start working on the project. As questions come to mind I write them down in a "learning log"—bullets in a document. If there’s a large piece of knowledge or tool that’s missing I’ll add it to the top of the document and handle it later.

I’ve found that this live-blogging style learning log helpful, even if no one reads it. By writing down questions and problems that are coming to mind as I’m learning, it forces me to clarify and refine my thinking. This often helps me solve a problem quickly. Writing down the question helps prompt my mind to provide better & unique answers.

As a meta-point, by writing down this little guide it helped me better structure my learning process for my next project!

Continue Reading

How to Block Distracting Websites on Your Laptop

"What exactly did I do the last 30 minutes?"

I’m sure you’ve been there, asking that same question, staring blankly into your computer screen.

I’ve written about how I’m working to minimized distraction. For me, a big component of that is blocking distraction on the device I spend the most time: my laptop.

Here’s what I’m looking to do:

Automatically block distracting websites, but allow an easy way to temporarily unblock them. Example: I want to block Amazon by default, but sometimes I want to jump on and buy something quickly. I don’t want to have to manage a schedule. Creating exceptions to schedules and then remembering to re-enable the schedule never works well. I don’t want crappy software that is going to slow down my computer or cause weird networking issues. I want it to be hard, but not impossible, to disable. One or two clicks to disable is too easy. The Easy Way

For most folks, you’ll want to use one of the couple apps out there that do this for you. Here are some that I’ve tried:

RescueTime Focus Freedom Cold Turkey

Focus is the best option I’ve found. It’s a simple and nicely designed app. Check it out!

The Hard Way

If you like tinkering with your system setup, read on.

The pre-built applications always seemed to do strange things to the networking stack on my computer or hog lots of resources (GBs of memory in some cases). This is probably due to how much I customize my computer.

Also, I found that if I disabled my "blocking schedule" it didn’t automatically re-enable. I would then find myself down the Twitter rabbit-hole with 20m wasted. That was a big issue for me.

Eventually, I got frustrated and built a solution which works surprisingly well:

Maintain a simple file listing every host is distracting. Run a script every time the computer wakes up. I used sleepwatcher for this. The script consumes a list of distracting hosts and adds them to /etc/hosts with a reference to a non-existent server. After trying a couple of tools, a node package hostile worked best. 1. Build a List of Distracting Websites

First, create a simple text file. Back it up on Gist or somewhere where it won’t be lost. Version tracking the file allows you to view a history of what websites are distracting over time.

I keep this file in my dotfiles repo. Here’s what it looks like:

facebook.com twitter.com smile.amazon.com

(yes, that’s Amazon Smile since I have a browser extension to redirect me there)

Then you’ll want to clean the file, add www variants of each host, and point them to 127.0.0.1:

sed '/^$/d' ./distracting_websites.txt | sed $'s/\(.*\)/127.0.0.1 \\1\\\n127.0.0.1 www.\\1/' > ~/distracting_sites.txt

I put this script in the setup process of my dotfiles for easy ad-hoc execution (you’ll want to continually update your distracting_websites.txt as new things distract you).

2. Block all Distracting Websites with a Script

Below is a script that is run every time I wake my computer. Here’s what it does:

Updates /etc/hosts using hostile and the distracting_sites.txt file Clears system DNS cache Clears Safari cache, which seems to have its own DNS cache. Chrome does not. # asdf is a node version management tool I use. Your exact execution paths will probably be different /Users/mike/.asdf/installs/nodejs/12.14.1/bin/node \ /Users/mike/.asdf/installs/nodejs/12.14.1/.npm/bin/hostile \ load /Users/mike/distracting_sites.txt # clear system cache # https://apple.stackexchange.com/questions/303110/flush-cache-of-dns-on-macos-sierra-high-sierra/303119#303119 sudo killall -HUP mDNSResponder # clear safari cache osascript << EOF tell application "Safari" activate end tell tell application "System Events" tell process "Safari" tell menu bar 1 to tell menu bar item "Develop" to tell menu 1 to tell menu item "Empty Caches" to click end tell end tell EOF

You can test this script by running it with sudo:

sudo /usr/local/sbin/sleepwatcher --verbose --wakeup .wakeup 3. Run Website Blocking Script When your Computer Wakes from Sleep

First, install sleepwatcher:

brew install sleepwatcher

Then, you’ll want to find the location of the plist file which starts up sleepwatcher as a daemon process:

$ brew services Name Status User Plist sleepwatcher started root /Library/LaunchDaemons/homebrew.mxcl.sleepwatcher.plist

You’ll want to edit this plist:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>homebrew.mxcl.sleepwatcher</string> <key>ProgramArguments</key> <array> <string>/usr/local/sbin/sleepwatcher</string> <string>-V</string> <string>-w /Users/mike/.wakeup</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>StandardOutPath</key> <string>/usr/local/var/log/sleepwatcher.log</string> <key>StandardErrorPath</key> <string>/usr/local/var/log/sleepwatcher.log</string> </dict> </plist>

Then, you’ll want to ensure the process runs as root and the script you created is executable:

chmod + /Users/mike/.wakeup brew services stop sleepwatcher sudo brew services start sleepwatcher

And… you’re done! Depending on your OS configuration you may need to grant some permissions on first run.

Was this overkill? Definitely. Does it prevent me from wasting any time on distracting websites? Absolutely.

Continue Reading

How I Broke My Phone Addiction

The launch of Neuralink started a conversation across the web about the “merge”. The day when you can plug your brain into a computer and communicate with it through your thoughts. No keyboard, mouse, or touch screen. Something out of a sci-fi film.

I think Sam Altman has an interesting take:

I believe the merge has already started, and we are a few years in. Our phones control us and tell us what to do when; social media feeds determine how we feel; search engines decide what we think.

This resonated very strongly with me. My phone does control me to a certain extent and I feel uncomfortable if I hop in the car without it.

I’ve been on a kick this year of being intentional about how I use technology. A big part of that is my phone. It’s the most distracting—and the most useful—thing I own.

“What’s wrong with your phone? Is it broken?” has been a common refrain when I show a friend a photo or map on my phone. Friends often complain about how slow I am to respond to texts. My phone isn’t broken and I know how to use the messages app, but I have taken some “extreme” measures to disconnect from my phone.

Below is the list of things I’ve done to disconnect from my phone. They work. Not that I’m close to perfect, but I can easily leave my phone in another room now and forget to check it for nearly a day. That’s huge.

If they seem extreme, I encourage you try one or two and see what happens.

Turn off Text Notifications

Turn off all your text notifications. Settings > Notifications > Messages > Allow Notifications.

Yes, it’s hard and annoying for a week. But man, it is amazing not to hear or see that ding from incoming messages. Once you get over the week or two of withdrawal you’ll love it and never be able to go back. I’ve had my text notifications disabled for months at this point and it is the single biggest change you can make on your phone.

“Communication for work comes through text and I’m expected to respond instantly!”

You win. This won’t work for you. Here are two ideas for you:

Can you block texts from non-work numbers? If your work will pay for a separate phone, you could setup that phone with text notifications and disable them on your device.

“What if you are meeting someone i person and need to communicate in real-time?”

This happens to me often. Just open up your message app.

“What if you miss an emergency text from your spouse/friend/whatever?”

Tell your spouse and close friends you’ve disabled text notifications. If they need you right away, they can call you.

1. Setup an Incoming Call Whitelist

The idea here is only allowing calls from people you know. Any other calls can go to voicemail. If it’s important, they’ll leave a message and you can listen to it later.

Here’s how to setup this whitelist:

Navigate to Settings > Do Not Disturb. Setup a schedule and make it nearly the whole day. Allow Calls From: Favorites (or whatever list includes the people you need to be responsive to). This is your whitelist of people you want to hear from. Install Hiya. I’ve found this to be a helpful tool for identifying spam callers when reviewing my missed calls and voicemail.

“I may receive a callback from a customer service department or other unknown numbers”

Just disable do not disturb. Because you’ve setup a schedule, it’ll automatically be enabled the next day.

2. Enable Grayscale Mode

This was a trick I pulled from Make Time. Makes your phone less addicting, but no less functional:

Settings > General > Accessibility >Display Accommodations >Color Filters. Switch Color Filters on and select Grayscale. 3. Remove Distracting Applications

Remove any apps which you find yourself pull-to-refresh’ing. Some examples:

Social: Twitter, Facebook, Pinterest, whatever Dedicated news apps Email. Truth be told, I still have this on my phone for work communication. Move any apps that you need to keep, but are distracting, off the home screen. 4. Block Nearly All Notifications

Go through every app on your phone (Settings > Notifications) and turn off notifications. Think hard about the couple apps you really need notifications from and enable them.

Here’s my list:

Google Calendar FaceTime Phone Airline apps Google Maps Scooter apps, Lyft, Uber DMs on Slack within working hours Todoist 5. Block Distracting Websites

It’s not intuitive but you can block distracting websites on chrome/safari on your phone.

Navigate to ‘Screen Time > Content & Privacy Restrictions > Content Restrictions > Web Content > Limit Adult Websites’ and enter in all distracting sites under “Never allow”.

For example, here’s some of my list:

facebook.com twitter.com news.ycombinator.com recode.net theverge.com techcrunch.com producthunt.com quora.com reddit.con

Setup a monthly reminder on your todo list to add any new distracting news sites that you’ve started looking at on your phone.

Other Tips & Tricks

If you’ve made it this far, I challenge you to stick with the setting changes for two weeks. That’s about how long it took for me to stop being annoyed by the changes.

Below are some other configuration tips & tricks I’ve written down over the years for when I get a new iPhone.

Other Misc Tips & Tricks Move mail off of the home screen General > Display & Brightness > Night Shift. Enable, 9am-7pm General > Accessibility > Home Button > Reset Finger to Open Delete default apps I’ll never use: Home, Books, iTunes Store, Watch, Tips, TV, Apple Mail, News, Stocks. Messages: Enable send as SMS, disable send read receipts, enable text message forwarding. iCloud: disable photos (use Amazon photos instead), enable contacts, disable calendar, enable Messages, disable Stocks, enable iCloud backup, disable Keychain (use 1Password instead) Phone > Call Blocking & Identification: Hiya Spam & Block Enable password autofill for 1Password. Password & Accounts > Autofill Passwords > 1Password. Disable keychain passwords. Amazon Music: download some music you like, enable automatic downloads of offline music, and disable cellular streaming. Download offline google maps for your local area. Automatic Backup Configuration If you have Amazon Prime. Install Prime Photos and use it to backup all of your photos. Settings > iCloud > Storage > Manage Storage > Backups > Disable Photo Backup . 5gb is not enough room for anything, and Amazon gives you unlimited photo storage for free. Plus, there additional storage tiers (if you take a lot of videos on your iphone) is really cheap. Settings > iCloud > Photos > Disable Photo Stream. Manually initiate a backup to ensure everything goes smoothly. Without photos + videos, your iPhone backup should be able to fit into the 5gb default iCloud storage. Warranty & Documentation

Some notes on warranty replacement:

An IMIE number is a unique identifier for your phone. Document this number in a 1Password note. Settings > General > About > IMIE Your ICC number is the unique identifier for your SIM card. Document this as well. If something is going wrong with your iPhone, try backing up the phone to iTunes and then doing a fresh restore. If that doesn’t work it’s a hardware issue. Try this before wasting your time with Apple/your cell provider. If you get an “Invalid SIM” error when switching cell phone providers or phones your IMIE and ICC numbers may not be “paired’. You can often pair these numbers yourself through the settings area of your cell provider. The support reps often do not check this or understand it fully.

Continue Reading

Optimize Your Charitable Giving Using a Donor Advised Fund (DAF)

I’ve always been fascinated with the idea of recurring revenue. Building a business or a portfolio of investments which passively create recurring income has been interesting to me since I got my first paycheck.

Over the last year I’ve been thinking: why can’t I (slowly) create a charitable asset that kicks off income each year which can go tax-free to charities? This way, instead of giving to an organization once, you can build a mix of assets that generate enough income to perpetually give to the organizations you carry about?

This idea, combined with the recent tax law changes that made it more challenging to get a deduction from charitable donations (10k SALT limitation makes it harder to itemize), got me researching. I ended up finding an interesting vechicle which I hadn’t heard of before: the Donor Advised Fund (DAF).

Obviously, I’m not a financial advisor, lawyer, CPA, etc. Don’t trust anything you read here, and always consult your own advisors. 

How a Donor Advised Fund Works

Here’s the basics of how a DAF works:

You ‘join’ a DAF run by an independent organization. There’s a minimum (~$5k) to opening up an account with DAFs (Fidelity, Vanguard, etc). These organizations charge a management fee (~0.5% of assets). You donate to the tax-deductible DAF. When you donate to the DAF, you are giving away any legal control over that money. The DAF can technically do whatever they’d like with it. However, you can ‘advise’ the fund where you’d like them to donate. Essentially, this means you control exactly where the money in the fund flows. You don’t have to donate everything that you put into the fund within the same calendar year

Here’s why it’s powerful:

You only have one tax slip at the end of the year from the DAF. No more chasing down charities to properly document your charitable giving! You can ‘batch’ donations in a single year to the DAF get above the standard dedution, but distribute money to charities across a number of years. While the money is in the DAF and not distributed to a charity you can invest the cash in low-cost index funds. You could structure the DAF so you only distribute earnings from your invested cash. If you have a cash windfall, you can make a large donation in the same tax year to the DAF to get the deduction, but decide later exactly what charity you’d like to distribute the funds. It’s easier to control the organizations you donate to: instead of organizations charging your card every month, you can setup monthly/quarterly/yearly donations which are sent to various organizations. You don’t have to worry about organizations not canceling your recurring donation or contacting them to change your donation. You can manage all your donations from a central dashboard.

I’ve been using the Fidelity Charitable DAF for the last year and it’s been awesome. The management fees and minimums made the most sense for my situation, plus it seemed like they had the best website. The Vanguard and Schwab options seemed about the same.

Some interesting threads/links I found along the way:

Reddit Analysis of DAFs Boglehead Thread Alliance for Good What’s the Catch?

From what I can tell, there isn’t any.

For some reason, the DAF hasn’t been advertised heavily. Probably because the number of folks willing to donate about the minimums (~5k for the initial setup) isn’t huge, and non-profits have an incentive to maintain a direct relationship with the donor and ping their card every month (with a DAF you control the fund outflow).

However, there are some limitations/downsides to be aware of:

You are legally removing control over the money. Theoritically, the organization managing the DAF could do whatever they’d like with it. There are some limitations to organizations beyond 501(c)(3) you can donate to. A ~0.5% management fee is charged on a yearly basis. What About Foundations? Or a 501(c)(3)?

I’ve heard differing opinions on if it makes sense to open up your own foundation.

Some folks have said that the legal and compliance overhead with foundations are not worth it unless you have 100s of thousands to give away. 5-10 This seems to align with what I’ve seen (through my wife who worked in non-profit development)—only very large donors seem to maintain a foundation in their name, and foundations seem to have a bunch more rules to follow and compliance to worry about.

I’ve also heard about some folks who open their own 501(c)(3) and park their charitable donations there. From my cursory research, non-profit organizations have the same or more overhead compared to a foundation.

In my analysis, the simplicity and relatively low management fees of the DAF make it the best choice for most folks.

A foundation or 501(c)(3) would make sense for very high net-worth individuals, or the unique person who has the time/savvy/interest to read through & file the paperwork and ensure there aren’t any compliance issues. I’m more keen to keep things simple and eliminate overhead, even if it means reduced control or slightly higher costs. KISS, baby.

Why Everyone Should Give

You might ask why this matters, or why you should give at all. Here’s my perspective.

I believe strongly that everyone, regardless of their income level, should give something to the community they are a part of. This doesn’t always mean money, but it does mean something valuable (time, things, ideas, etc) that helps others around you.

It’s easy to become very self-centered and giving counteracts the natural force that makes life all about us. For most of us, many other people have been given a set of circumstances that make life much harder than our own. Giving (especially when it’s significant enough to ‘hurt’) makes us aware of those around us less fortunate and ensures we live a life for others, and not ourselves.

Continue Reading

3 Email Efficiency Tips

I wanted to share a couple quick email efficiency tips that have been helpful over the last couple weeks.

When scheduling a meeting, instead of asking “What time would be good to meet?” suggest a exact time and day with two alternatives that work for you. Also provide a link to your full public calendar with event details hidden (I use ScheduleShare for this). For example:

Would 2-2:30pm on Thursday the 12th work for you? If not, would Wednesday at 10:00am or Thursday at 11:00am work? Feel free to suggest another time that works best for you; here’s my full schedule: LINK

Also, when you’ve decided on a meeting time, create a meeting invite and include a conference line as the location of the calendar event:

I just sent over an invite with a conference line. Feel free to suggest another conference tool.

This avoids another round of back and forth deciding which conferencing tool to use, and then asking for Skype/G+/etc usernames. I’ve found that for most one-off meetings, a simple analog phone line works best: it doesn’t require any software, and eliminates the always-present audio issues that exist with software-based conferencing solutions.

If you are responding to a unsolicited request, don’t feel the need to write a full in-depth response. Provide some value, and then ask the correspondent for some additional information that will require a thoughtful response on their end. I’m a people pleaser and a perfectionist, it’s been a discipline for me not to help anyone who comes asking for help. Often times, I’ve found that when pressed for more information about the problem someone is facing, I don’t receive a reply and end up saving myself a lot of time writing a thoughtful response.

Continue Reading

Steps to Refocus, Regroup, and Get Productive

After a series of unrelated meetings or going through a full inbox, it’s easy to feel scattered, unfocused, and distracted.

This has happened to enough times, that I’ve written out an instruction manual for myself to enable me to quickly get refocused and back on the right track:

Record everything in your head. Dump all tasks into your favorite task manager (ToDoist is mine!). Don’t attempt to label, prioritize, or organize tasks. Collect scattered tasks. Get all tasks, ideas, or unorganized bits of information in a centralized location. Run through any written information and transcribe any actionable items. I’d recommend setting up a “paper inbox” to throw all paper, notes, mail, etc so it’s easy to process. Look through missed calls and listen to all voicemails and record any tasks. Look through all text messages and record any tasks. Run through your email and move any tasks to your todo list. Todoist has a feature that enables you to email tasks into your todoist inbox; this is super helpful for quickly extracting action items from your inbox. Prioritize. Run through the list and prioritize all tasks. Eliminate. Is there anything you can: Delay. Does it really need to be done now? Automate. Is there a recurring task that you could use zapier or another service to completely automate? Outsource/Delegate. Use a virtual assistant, fiverr, etc. Think you can’t afford a virtual assistant? Calculate how much your time is worth, realize that your time is worth more than $20/hour, and then start getting comfortable paying others to do things you don’t enjoy. Delete. If you’ve committed to too much, try to get out of the commitment. This is super hard for me (I’m a people pleaser), but it’s so essential to making sure you make good on the commitments you’ve already made. Rescan your list. Is there anything you can hand off to someone who will do a 80% ok job? “Good enough” can be “great” if you didn’t spend any time on it! Make sure your list is manageable. You know how much you can get done in a day, make sure your todo list for the day can be accomplished without sacrificing your margin. Apologize & communicate delays. If you’re slammed, most likely you are going to be delayed on getting some tasks done. Make sure that anyone who is depending on you knows about the delay and understands what the revised timeline looks like.

Although it takes time to run through this process, it’s been an enormous help. What works for you? How do you get refocused when you feel unfocused?

Continue Reading

Action Steps for Doubling Morning Productivity

Here’s my system for engineering an incredibly productive distraction-free work block from when you wake up to 12:30pm. Although I don’t follow this routine all of the time, when I do I’ve hugely increased my ability to cut through the urgent and ensure that most important tasks for the day get completed.

Download Focus App. Setup a weekly schedule to block all distractions from 4:30am to 12:30pm on all weekdays. If you want to impress your friends, block all distractions everyday. In addition to the stock list of websites, here are some applications I block: Mail. If you use the gmail web interface, download MailPlane so you can easily block it. If you need to send an email during your distraction-free time block, just open up the browser. Messages. I hate text messages even more than email. There are no open standards, which means there is no tooling (or innovation!) around separating context and managing distraction. I’ve resorted to blocking the entire app and scheduling a recurring task (via ToDoist) to batch respond to messages. This doesn’t work completely: I still need to respond to some people in real-time. Still not happy with this piece of the puzzle: I would love an app that whitelisted specific contacts as important and provided a distraction free interface to respond. Twitter. The exception: Slack. I keep Slack open although it could be a huge distraction. Too much business-critical communication happens here. Most routers allow you to setup internet access schedules for specific devices on your network. I’ve blocked wifi on my phone from 8pm-12:30pm. This adds a little bit of friction to using my phone. Put your phone on the other side of the room, or in a place where you can’t touch it. This adds additional friction to checking your messages/notifications, even when your phone is on “Do Not Disturb” mode. Setup parental controls on your iPhone: block all social networks or distracting news sites. Setup a “Do Not Disturb” schedule on your phone from 8pm-12:30pm. Here’s a quick solution to the “I need to be available in case someone really needs to get ahold of me!” problem. Create a group in the Apple address book with a list of people who you need to be responsive to (for family, personal, or business reasons). Then, whitelist this group in your “Do Not Disturb” settings. However, the above trick only whitelists calls, not texts. I’ve slowly been communicating that phone and slack are the best channels to grab me. If it’s not important enough to call, or if you are not in a Slack group that I monitor, then it can’t be urgent enough to break my morning concentration time. Setup RescueTime to track your time usage. This gives me weekly metrics to guide me to areas of improvement. Move the mail app on your phone to the last screen. This makes checking email on your phone a deliberate choice instead of a impulsive action. Disable all notifications on your phone. Anything that you don’t need to know about right then should be sent to email where it can be handled in batches. Here are some notifications which I’ve disabled: Facebook Messenger, Twitter, email, LinkedIn, DropBox. iMessage and Calendar are the only notifications which I allow on my phone.

Let me know what you think: I’d love to hear any critique or tips you’ve found to be effective.

Continue Reading

Are You Being Deliberate About Long-term Goals?

Recently, I met with a mentor about some of my past and future goals. After listening and understanding my goals, he started to dive into the motivation behind my goals.

Why did I want to build that product? Why was I interested in that type of business? What did I want my life outside of work to look like? What type of people do I enjoy working with? Am I working with those people? What type of work did I enjoy? What type of work am I excellent at? What type of lifestyle do I want to live?

I had good answers to the first round of questions, but as he kept digging I realized my answers were becoming more and more thin, and I had a lot of thinking to do.

I’m a planner by nature. I’m a checklist-driven high achiever who loves to build, create, and get things done. What the questions by this trusted mentor made me realize is my thinking and planning had been very short-term and short sighted.

My goals and ideas were aimed at the next 1-3 years and not the next 5, 10, or 15 years.

He challenged me to get intentional. To be deliberate about defining what I want to achieve. To get clarity on what I want all aspects of my life to look like: professional, family, spiritual, financial, social, etc. I was challenged to define in detail what I’m excellent at, what there is a market for, and what I’m passionate about; and to develop and find opportunities at the intersections of those three things.

It’s our duty to strive towards greatness in our lives, and through my time with this mentor I realized that I was falling short. Are you being deliberate and intentional about defining and striving towards greatness in your life?

Continue Reading

Get a Dedicated, Free, High Quality Conference Line

Premium services often end up being cheaper.

This doesn’t meant that all premium services are expensive. Systems are being disrupted at such a rapid pace you can often find incredible services – like a free virtual fax machine – completely free.

One of these services is UberConference. Even if you run a one man shop (like I do!) you should signup for UberConference and use it exclusively for calls.

Here’s why:

Hangouts is not reliable for phone calls. They have a great dial out feature, but I’ve been on a couple calls where the call connection kept dropping out. It was embarrassing and made me lool sloppy. Calling someone’s cell, or having them call you, often creates a coordination problem. What if you or they are a couple minutes late? You then have to call again, text them, email, etc to adjust coordination. Using a conference line eliminates this problem completely.

I’ve also found that a call is often more effective than trying to use a video conference, especially if it’s a one-off conversation or if it’s more of a prospecting call. Phone calls are low friction and globally compatible: everyone has a phone and can use it from anywhere. Video conferencing software still frequently fails and can make the start of a conversation awkward and jerky while you both try to get your conference software working.

Continue Reading