Reclaiming Your Mind: Creating an Information Diet

I track the time I spend on the internet, and it's way higher than I would like. I've felt more addicted to the whole-world-information-firehouse as time has gone on and I want to change that. "We struggle to read any serious books, and even a long blog post feels too much." That (paraphrased) quote rang very true when I heard it at a conference recently. I used to be able to sit down for hours and read a book, and I can't anymore. I'd like that part of my brain back, please.In the spirit of open-sourcing my thinking, here's how I thought through revamping how I consume information. I've been using this new system for a couple of months and it's been working really well.This post got too long (sorry!), but I want to remind my future self what I was thinking when I decide to iterate on this system.

Categories

It's worth thinking about what categories of information are worth spending time on. It's so easy to get sucked into whatever system provides a feedback loop that you enjoy, but if what if you could design what categories of information you wanted to consume? What types of information would you consume and why?Here's my list:

Stories. I've been almost exclusively consuming non-fiction for the last decade and rarely read any non-fiction. At the suggestion of my ever-wise wife and the promptings of a podcast on story I've reprioritized non-fiction as something worth spending time on. Great stories can change our perspective on life and increase creative thinking.Curiosity & Exploration. Investing in discovering new and interesting ideas has always paid off for me. For me, this generally looks like browsing community sites like Hacker News, reading a random newsletter, or following interesting people on Twitter. Learning about random, interesting topics has always been really enjoyable for me—it sparks creativity and is useful later when I'm building something.Work. Books, blog posts, videos, etc to help me solve a work-related problem.Entertainment & Social. Twitter, Facebook, news, etc. When you look back at your time spent here you always feel like it was a waste. I've been convinced that keeping up with news is largely a waste of time (you'll hear anything worth knowing about through friends), and time spent communicating with friends over social is better spent with friends in person. This doesn't mean that there isn't a place for this category, but for me, it means I need to bias towards eliminating any time spent on this category.Infrequent Personal-ish Updates. There's a group of organizations or people I follow that I want to keep tabs on, but don't send emails often. A friend running a non-profit, bands announcing a new album, etc.Local Business Updates. There's a handful of local businesses that send out email-only coupons. I don't want to see these in my inbox, but I do want to search them every once in a while.Transaction/Service Emails. Messages from financial companies about transaction confirmations, amazon order confirmations, etc. I generally don't want to see these in my inbox, but I want them to be labeled and searchable. Mediums

Here are the places I consume information:

Podcasts.Books.Blogs.Community News. Hacker News, Lobsters, Reddit, Product Hunt.News Sites. Google News, Bloomberg, TechCrunch, etc.Social. Twitter, FaceBook.Video. NetFlix, Amazon Prime, YouTube.Email.Personal communication. Texts, voicemails, etc. Changing Consumption Habits

Now that I've clarified what categories I care about, and where I get information, how can I reorganize my consumption system?Here's what I want to change:

Continually improve. Set aside time every so often to quickly audit what I'm consuming, how much I'm consuming, and what tools I'm using. Make consumption a choice rather than a reaction. Right now, I randomly visit Hacker News or see an article come through my email and boom I just lost 15m of my day. Instead, I want to centralize information from a specific category into a single place that I can go when I intentionally want to consume that type of information. Optimize for pull vs push consumption. A great example here is email newsletters. They are sent to you (push), not pull (like a feed), and are often messy to read and pile up in my inbox. Especially in my email, I want to separate "conversations with people" over "updates from companies/interesting news".Categorizing information is critical. Email newsletters can't be categorized easily. I want to put information into separate buckets that I can prioritize and triage separately. I should use RSS again. Way back when, I read everything via NetNewsWire. Email newsletters took over seemingly overnight and I forgot that RSS existed. Most sites I care about still support RSS (even if it's not advertised explicitly). Even if a site doesn't support RSS, there are readers which convert emails into a feed-like experience. Use an RSS Reader. Specifically, one supported by paid subscriptions. Free is great, but most free things (without a huge market) die (this is super common in the recipe-management space for some reason) or slowly become spammy. I don't want to have to mess with this part of my toolkit much and deal with a killed product. Paid subscriptions mean it's a real business that will continue to improve over time. Limit consumption. I want to enforce a limit on the number of things I'm consuming. I wonder if there is a way to automatically reset the read count of various feeds so it doesn't look like there are too many articles to read when I use a reader.Prefer books over articles. For most business/technology problems, blogs and Q&A sites are the main source of data but work aside, books are generally higher-quality information compared to blogs. The time it took someone to create the content is a good indicator of the quality. Books > Blogs > Twitter (this gets a bit tricky with low-cost kindle books, treat most of those like blog posts). Optimize for the highest impact & quality information at the beginning of the day. This means reading books and long-form articles at the beginning of the day while my mind is clear, instead of consuming blogs, tweets, texts, etc. Treat books like a blog archive. I really like this concept (I didn't come up with it). Reading books from cover to cover doesn't make a ton of sense, although it's definitely how I'm trained to read books. Skimming through a chapter (or skipping it entirely) if you find it boring or too verbose shouldn't feel 'wrong'. If the writer can't keep your attention, that's their fault. Additionally, books are generally longer than they need to be in order to hit page quotas. Don't feel bad about paging through a chapter if you got the joke.Don't switch contexts. If you are reading a book, don't stop and read a blog article. Cultivating sustained laser-focus attention on a single thing is critically important. I've found this to be more challenging as the years go by, and it's something I need to be even more intentional about. Focus on managing written internet media. I don't over-consume podcasts or books. I struggle most with interesting, distracting news sources like Hacker News or Twitter. Making Changes

Here are the changes I implemented:

Start using an RSS reader instead of email or checking sites directly. After a bunch of investigation (detailed below), I settled on using FeedBin. I've been using it for a couple months and it's great. There are some rough edges to the product, but the developer is responsive and seems to be consistently improving the application.Limit the number of feeds to 30. I suspect this number will change as I continue to slowly improve how I'm processing information, but this is a good start.Define discrete categories for RSS. People, eng-people, engineering, tech, financeConvert email newsletters to RSS. Most newsletters (like Ruby Weekly) have an RSS feed. For those that don't, FeedBin has a service to convert email newsletters into a feed-like experience. I imagine there are standalone services that will do this for you automatically.Mass-unsubscribe from email newsletters. I've been using unroll.me for years (I don't love the lack of privacy, but it's a great tool). It looks like their unsubscribe option will actually click through the unsubscribe links for me. I should go through my daily Unroll.me summary and remove newsletters I'm not interested in, and convert the others into a feed.Setup two aliases email+updates@gmail.com and email+promotions@gmail.com. Forward all updates to FeedBin, tag, and auto-archive. Auto-archive & tag all promotions.Subscribe to weekly summaries on community news sites. Ban these sites from my iPhone and computer to avoid yet another distraction on my computer.Reset Twitter. Mass unfollow everyone on Twitter, and limit the people I follow to 50. I really enjoy Twitter: depending on the group of folks you follow, there's a neverending stream of interesting ideas. Block all news, social, and other distracting sites. Limit the number of Podcasts to 15. In writing down this rule, I felt a bit of information FOMO ("What I miss out on an important concept!"). Just write down the podcasts you are interested in, but don't fit in your prioritized list, in a separate doc and come back to them in your quarterly information review. Stop using Apple Podcasts. I find it hard to keep things organized and Apple seems to randomly reverse the listing of certain podcasts and randomly download old episodes. I should trim which Podcasts I subscribe to and find another Podcast application. I landed on Breaker.Stop using YouTube. I removed all of my YouTube subscriptions. The recommendation engine was just too good at finding interesting content. Recurring Tasks

To keep things tidy, here are a couple of things I need to do. I set these tasks up in Todoist so I won't forget.

Every week, enable website blockers. There are times when I need to disable blockers to access something, and then I forget to re-enable them.Every 2 weeks, mark all podcasts & RSS as played/read. In Breaker, go to Subscription settings and choose "Delete All"In ReadKit, go to "RSS News" and mark all as read. Review transactional emails. Most companies allow you to edit out the email notifications you don't care about; actively remove yourself from emails you don't care about (like automatic account payments). Some emails you can't opt-out of (i.e. Amazon transaction emails); create a gmail filter for these (tag and auto-archive).Review Unroll.me digests. Unsubscribe from everything that doesn't fall into the "Infrequent Personal-ish Updates" category.Every quarter, set aside some time to review the 'information consumption system'. What's working/what's not/what needs to change? RSS Reader Research

I enjoyed researching the RSS readers out there! I found it interesting that many of the popular ones (outside Feedly) were micro bootstrapped businesses.

https://reederapp.com/mac/#faq doesn't look like it is updated often.https://github.com/mausba/rssheap went open source and hasn't been touched in over a year.https://github.com/getstream/winds podcast and RSS reader, open-source, commercially supported and recently updated.https://www.inoreader.com. Standalone paid product, has an API, doesn't look too complex. 64 feeds for free.Feedly.com is the most popular, but looks overdone.http://newsblur.com. Standalone paid product. Not updated frequently. Doesn't look like a great design. Free and paid tiers. I found this reader most commonly referenced by Hacker News and Lobsters.https://readkitapp.com nice looking client that ties into various services (including FeedBin) to create a great reading experience on MacOS. Seems to be updated frequently. https://www.goldenhillsoftware.com/unread/ another macos reader.https://yoleoreader.com web-based reader with a low-cost paid subscription.https://feedbin.com well-designed feed reader. Supports podcasts and receiving email newsletters via a special email address. Also has a Twitter reader as well. Bootstrapped business. Also open source, very cool. https://github.com/feedbin/feedbinhttps://github.com/ViennaRSS/vienna-rss Pete Cooper is involved in this one. Open source. Looks like a zombie product.https://www.nooshub.com new reader from HN with some fancy "AI" grouping.https://ranchero.com/netnewswire/ It looks like this client is coming back to life after years in hibernation. https://apps.apple.com/app/leaf/id576338668 Leaf. Looks dead. Hasn't been updated in two years.

Other interesting finds:

https://superfeedr.com RSS feed API platform. https://throttlehq.com dynamically created unique email addressesInteresting discussion threads on RSS readers: https://news.ycombinator.com/item?id=20167143 and https://news.ycombinator.com/item?id=19909102

Continue Reading

2019 Goal Retrospective

I've been doing retrospective's on my yearly goals for a couple years now. Although it's a little late, I wouldn't want to break the habit (plus, I'm trying to open source my thinking).

Let's go!

What Worked Creating a distinction between habits and goals. I have a separate "habit document" where I document habits that are important to me. Setting a goal to kickstart a habit. Habit-goals shouldn't be all, or even most, of your goals for the year but having one or two habit-goals can be really effective at changing behavior. It was useful to commit to an action (like hiring a personal trainer) to force building momentum for a specific habit. If you've set a goal for the last couple years and haven't been able to make it happen, consider doing something drastic. How can you up the ante and put something on the line associated with the goal? Maybe it's hiring a coach, tying money to it, making a commitment that you can't back out of without causing issues for someone else, etc. Figuring out how to raise the stakes has been hugely helpful. Including a just-for-fun goal: vacation, hobbies, etc that you'll be really motivated to accomplish. This has helped me be excited about the year and maintain motivation for the important but not exciting goals. Setting aside project time as a married couple. It was fun to work on our goals together, and we got some important and run things done during this time. Looking forward to more of this. Joint goals or projects with my wife was really fun and motivating. For instance, we built a garden together this year. Zero-targets. Setting a non-action goal was a great way to break some behaviors I wanted to change. What Didn't Goals that weren't exciting or specific enough fell to wayside. We didn't do the quarterly review at all. This is the second year that this wasn't an effective practice. In the season of life that we are in (little kids), we just don't have the time to really set aside the time to do a proper quarterly review. We need to rethink this. This may be obvious, but having a kid is a goal in and of itself. We knew we were going to be growing our family, but I didn't account for this in my list of goals. Make sure to a in that year and you need to plan for that. We didn't create "project time" that often individually or as a couple. I wish we blocked off time for projects 2-3x more than we did. What Needs to Change? Remove the quarterly review. We haven't stuck to it for the last two years and with two young kids carving out that amount of time just isn't practical. Next iteration on this is adding reminders to our monthly review to ask a couple of the questions that we wanted to incorporate into the monthly review. More project time. This is super fun if you set goals at a couple and helps create focus around making progress on goals that are slipping.

Here are some other reflections I had about the year:

Many of the exciting life changes have come and gone (moving, buying a house, etc) and we are in a season where family (kids) take up the majority of our time. This means that most of our goals are less exciting, and that's ok. We have to remember that raising amazing kids and being present to them is our top priority. What that requires shifts and changes throughout the year. Some things in our life which need to change are hard to tie to a specific and measurable goal. Mostly because we don't know exactly what needs to change. With two young kids "improving our family balance" is a thing we need to improve, but what that exactly means isn't clear. What we decided to do was pick a specific thing that represented the best forcing function we could think of for improving on the vauge state that we are marching towards, and then adjust the specifics of that goal as we move through the year. Most of your goals shouldn't be actions that you naturally motivated to take. I tend towards this mode and need to think hard about what goals work against things I don't

Continue Reading

Life Categories for Your 2020 Goals

Each year my wife and I go through a review process where we set goals and habit targets. We've been doing it for five years and it's amazing to see the progress we've both made. It's also been powerful to set joint goals that we can work on together.

I've found it helpful to think over the "categories" of your life. A couple of years ago I wrote out my main life categories and it's time to update that list:

Spiritual Marriage Kids Health Intellectual Work Adventure, beauty, and fun. Intentionally pursuing outdoor adventure and just-for-fun activities with friends is a new thing for me. In the past the first thing to go with this sort of self-care, but I've found this to be more and more critical to achieving the life I want to have over the long-term. Financial Relationships

This list is stack ranked against what my long-term priorities are. For a season, one category will be more important than other aspects of my life but over the long term, I want to ensure I prioritize my life against this stack-ranked list.

It has served as a good gut check for me at the end of each year: is my time aligned against how I want my life to look?

 

Continue Reading

Archiving a QuickBooks Online Account to QuickBooks Desktop

If you run a small business, you probably use QuickBooks. I've been impressed with the product: the rate of improvement continues to stay constant over the last couple of years (one of the most important criteria in picking a software platform for your business!) and it's surprisingly pleasant to use.

If you close a company, you'll want to archive all of your QuickBooks data for at least a couple of years in case you get audited. However, QuickBooks Online does not have a low-cost "audit backup" option to access a read-only version of your data. If you cancel your subscription, you only have 90 days to reactivate your subscription and restore your data. There are some QuickBooks Online apps that claim to backup your data, but there are significant caveats with most of these cloud apps.

The best (and cheapest) option is to download a QuickBooks Desktop version of your data which can then be later used to create a new QuickBooks Online account if you ever need to. However, this is more complicated than it should be (most likely, by design).

Hopefully, this guide makes it a bit easier!

1. Get Access to Windows 7 with Internet Explorer 11

In order to actually export the QuickBooks Desktop file from QuickBooks Online, you need Windows + IE. User-agent spoofing won't work, there's some wacky ActiveX plugin you need to install in order to complete the export process.

Other versions of Windows and IE may work, but this is the 'official' version stated to work when you login to QuickBooks Online > Exports > "Moving to QuickBooks Desktop?" > "Download company data".

"How can I possibly get those exact versions, especially when I don't have a Microsoft computer anywhere in sight?!" you may ask. Great question.

Luckily, Microsoft has virtual machines with a bunch of different Microsoft and IE versions (designed to be used for website testing) you can download and use for 90 days for free. Download the virtual machine here.

2. Download VirtualBox

You'll need VirtualBox to run the virtual machine you downloaded from Microsoft. Download it here. You'll also want to set up a couple of configuration options by navigating to Machine > Settings once your virtual machine is running:

General > Advanced > Shared Clipboard > Bidirectional. Helpful for sharing passwords for QB. Shared Folder > Add New. Set up a folder and make sure to auto-mount it. General > Displays. Make sure video memory is at least 128mb. For some reason the default was 4mb. 3. Download QuickBooks Desktop Trial Version

In order to download the QuickBooks Desktop file, you'll need to have QuickBooks Desktop installed on your virtual machine. You can download a trial here.

4. Generate QuickBooks Desktop Download File

Follow these instructions to download your QuickBooks Online as a QuickBooks Desktop file. Here's another guide that's more simple (but won't be kept up to date).

5. Verify & Backup

After you generate the QuickBooks Download file you'll get a strange email with the subject "QuickBooks Online Simple Start: Company Data Ready for Download" asking you to "2. Click the task or to do item called 'Download the company file created on xx/yy/zzz'". This must be old email copy, because there is no such thing as a "task or to do item" in QuickBooks.

Here's what you need to do:

Navigate to QuickBooks Online > Exports > "Moving to QuickBooks Desktop?" > "Download company data". You'll be walked through a process to download the file and import it into QuickBooks Desktop. If things don't work, restart your computer and open up QuickBooks Desktop before opening up IE. After you've opened the file in QuickBooks desktop, run the P&L and Balance Sheet reports to ensure the numbers match up with QuickBooks Online. Create a backup from QuickBooks Desktop and store it in your shared folder Create a copy of the company for QuickBooks online. File > Utilities. Copy the backup to DropBox/Google Drive/whatever Recreate a new company in QuickBooks Desktop using your backup to ensure you can recreate it if you need it.

Continue Reading

Why You Should Open Source Your Thinking

Open source software (OSS) has transformed the technology landscape. I can't imagine any software company build without OSS at the core.

What makes OSS magical is the serendipity of how it's created. Someone throws an initial idea on the internet, and if others have the same problem, they join in and organically refine and improve the original idea. Others silently lurk into the project, start using it, and run into some bugs or edge cases which they report (and sometimes post a fix for). Before you know it, there's a robust piece of software that has been tested under a variety of circumstances by experts around the world.

Amazing.

Blogging has similar properties. Someone can post an idea, which is then improved upon or augmented by the community. Unlike software, the mechanics (i.e. GitHub) don't easily exist to collaboratively discuss a particular part of the idea or concept that is being written (what a cool product that would be! Holloway is doing something similar).

I think posts written as a breakdown of someone's thinking on a particular topic, without any hidden agenda, have the best chance of creating the OSS dynamic. For instance, by reading Stephen Wolfram's explanation of his productivity system, you'll probably end up tweaking your own working style or adopting some of his tricks. Reading how someone else learned a programming language may change how you approach learning. A packing list for a family with four kids may help augment your own travel strategy and inspire you to travel the world with your kids. Reading how someone manages their finances, consumes information, purchases insurance, will help you revise and improve your own processes.

I think of these posts as "open sourcing your thinking". Documenting how you approach a specific topic with enough detail and vulnerability helps you clarify your own ideas but more importantly allows your ideas to be critiqued and improved by the larger internet community (just like OSS).

I'm going to be doing more of this. And, selfishly, I hope you do the same so I can learn from you!

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

Habits, Systems, and Scripts

I've been 'auditing' various areas of my life.

After being obsessively focused on work for a long time, it's been helpful to think deeply about the habits and pre-written scripts that I've developed across a bunch of areas of life. In most cases, the habits I've adopted over the years are a function of taking the path of least resistance than an intentional choice.

Here are some things I'm looking at:

Information Consumption (news, email, podcasts, reading, etc) Exercise Eating Prayer Marriage Friendship

Thinking through what I want from these categories, where I'm not satisfied, and asking 'why' multiple times until I get the root cause of the delta has been insightful. It's allowed me to rewrite the default scripts I operate out of and make meaningful change very quickly.

It takes intentional effort & dedicated time to create clarity in your thinking to focus in on what needs to change and to generate the excitement to do it.

Take some time and audit areas of your life that you've ignored because of laziness or busyness. It's worth it.

Continue Reading

Handling Web Timeouts in Heroku

I'm a huge fan of Heroku. Way back when, I used to manage the entire deployment infrastructure manually. I'd grab a VPS from RackSpace/AWS, install nginx, configure ruby, tinker with deployment scripts, and then in the weeks ahead endlessly tinker with settings when things didn't work just right. Although I did enjoy the capture-the-flag feel of finding the right service configuration to solve a problem, once Heroku became a thing I switched over every application I managed.

There's a huge amount of leverage in never having to worry about the details of your deployment infrastructure. Heroku is expensive, but it's orders-of-magnitude cheaper than hiring a devops expert.

However, there are some limitations. The one you'll most likely run into is the 30-second web worker timeout. If your web request doesn't finish in time, it will be killed and the user receives a 500 error. Not good.

A much better UX is displaying some sort of 'loading slowly, please refresh' message to the user and implementing progressive caching. This way, if there is some sort of slow service causing an IO block, you can cache the response in the first request made by the user, so the second page load attempt works successfully.

(You may be wondering why a page load would ever take 30s. Great question. I work a lot with NetSuite, and sometimes need to pull content dynamically. If there is an API slowdown—which happens often—this can cause the page load time to spike).

The best way I've found to gracefully handle this situation is to use the ruby stdlib Timeout::timeoutmethod to throw an exception after 29 seconds. However, this method is dangerous. You'll want to first understand how this operates under the hood:

https://jvns.ca/blog/2015/11/27/why-rubys-timeout-is-dangerous-and-thread-dot-raise-is-terrifying/https://medium.com/@adamhooper/in-ruby-dont-use-timeout-77d9d4e5a001https://www.mikeperham.com/2015/05/08/timeout-rubys-most-dangerous-api/

In your rails controller, here's how you can 'protect' a method that could run for a long time and display a friendly timeout page instead of a standard 500.

class ApplicationController rescue_from WebWorkerTimeoutError do render :timeout end around_action :raise_on_web_timeout, only: :show def show @state = the_long_running_thing end def raise_on_web_timeout Timeout::timeout(29, WebWorkerTimeoutError) do yield end end end

Continue Reading

The Feeling of Fast

Momentum is a powerful force. Once you are moving it's easier to get keep moving. If you've already crossed off an item or two on a less-than-ten-item todo list, you'll be able to get the rest of the tasks done faster.

The perception of speed is sometimes more important than your absolute speed. I've found that the "feeling of fast" creates the momentum that drives effective execution.

It's worth spending the time and money to optimize various aspects of your work & life in order to create a feeling of moving quickly.

For example:

A faster computer or phone reduces friction and makes it feel like you are getting more done. Using more keyboard shortcuts, or writing tools to automate repetitive tasks, can increase your velocity. Getting a treadmill desk can literally create the feeling that you are moving quickly. Using a VA to offload tasks which are time-consuming, boring, and uninteresting can make it seem like you got them off your plate quickly. If you have a tendency, as I do, to analyze small decisions too much making a decision within a pre-determined time-box can keep you moving quickly. If you are constantly refilling your Brita water filter, buy an under-the-sink filter with a reservoir so you'll never need to wait for water to filter.

Think about what is annoying, what makes you feel slow, and improve it. It's worth the up-front investment.

Continue Reading

2018 Goal Retrospective

Every year I enjoy doing a retrospective on last year's goals. I believe there is value is "open sourcing your brain": your ideas may help someone and you may get invaluable feedback to help you improve.  There's also a strange sense of social accountability created for myself that helps me ensure I improve this year.

So, with that in mind, here we go!

What worked Doing something small to move a goal forward. Once you see progress you'll be motivated to dig into the goal more and make progress. Reduce friction on goals which you are not naturally motivated to achieve. For instance, if you want to drink more water everyday, buy a water purifier to make the water taste better. Scheduling time on Sunday to work on goals. Other days of the week are very busy and my mind is generally "spent" by the end of the week.

Some additional context on #1 & #2:

One of my goals this year was improving my health: losing weight, eating better, etc. This is something I've never been good at or motivated to improve.

I've found that if I'm not making progress on a goal, especially when I'm not naturally motivated to hit it, it's because there is not a clear path to making progress. For instance, my health goal was to hit a specific weight and BMI. I don't know how to work out: my family, friends, and school never taught me and I never invested in it. I have such little knowledge of the space I don't really know where to get started.

What was really effective for me was setting up a little space in my house where I could do pushups and planks. I'm not sure if those exercises were the "best" to do, but I know how to do them well enough. I can do them at home, they don't take much time, and it's easy to see progress. I walk past the area I setup and it requires so little mental energy to take 10m and do the exercises that I've ended up doing them more consistently.

The lesson here for me is to break down large goals into a small actionable task and reduce the friction involved in accomplishing the task.

What didn't Quarterly review. We (my wife and I) did a great job on our weekly and monthly reviews, but just didn't do the quarterly reviews. We also didn't acknowledge this and adjust through the year. Health goals. I don't enjoy working out. It has always been a chore that required a bunch of my daily "decision making quota" to push myself to do it. I started making progress at the end of the year, but overall I barely made progress. Not scheduling enough time on Sunday to work on goals. There was one goal this year which I didn't hit just because I didn't schedule a couple more hours to create a plan and strategy that I could easily execute on throughout the week. Not bringing in help/accountability on a goal that is slipping. I'm wired to figure things out on my own, but sometimes (ex: exercise) it's best to bring in a professional to help provide external motivation and personalized information to put me on a clear track to accomplishing my goal. Developing new habits. I only have so much decision making power, or discipline, each day. Each time I need to make a decision I withdraw from my "decision bank account". This is why automating or eliminating as many decisions as possible is very powerful. It's also why I can't seem to develop more than one or two habits at a time. This last year I was not intentional about which habits I was working on and didn't ensure I had enough "discipline budget" to effectively build the habit. Running a business by yourself can take over your life. It's very hard to do anything but work on important and urgent items for the business. I created a "2018 Goal Dashboard" and didn't look at it at all. Keeping yet one additional thing up to date wasn't effective and it wasn't inspiring keeping a digital sheet full of gauges up to date. The meta-lesson here is being aware of adding more weight to a process. Be thoughtful about what the minimum overhead is required to accomplish your goals. What am I going to change? We didn't stick to our quarterly reviews. I think we need to shorten the review to make it quick: ~30m. The length of time that it takes to effectively do the review is what caused it to be harder to execute on. Don't attempt to make big life or habit changes when you are starting a business. Be honest with yourself and realize that creating a successful business is going to take every ounce of effort you have and every other major category of your life will be on autopilot. The type of business does matter here: if you are creating a coaching business, a small info-product business, etc that you aren't relying on to provide for your family this is a different story. Every 2-3 months we need to schedule a 3-4 hour block of time on Sunday to work on our goals. This dedicated time on a day when there's no other urgent obligations is critical to creating a strategy for moving forward on the more challenging goals. There's got to be an easy physical way to update the large goals for the year. Maybe some sort of board with the goals written down that you visit throughout the year.

I'll report back in 2020 with how this year's goals went.

Continue Reading