Skip to content

How to Outsource Everything

There are only a couple things that I’m really good at. That list does not include sending invoices, copy editing, fixing cars, scheduling doctor’s appointments, making small WordPress edits, designing flyers, going grocery shopping, going through paper mail, processing paper receipts, bookkeeping, filing taxes, or 100s of other tasks. I can do all of those things, but they aren’t things that only I can do well. As much as possible, it’s important clear the decks and make sure you are concentrating on those items and eliminating any items that don’t fit within your unique sweet-spot. Think of delegation and outsourcing in terms of systems, not just people. Here are some examples: “Outsource” shopping to Amazon…

Continue Reading

3 Quick Tips for Managing Your Inbox

Email is hard. It’s so easily abused and can be an enormous time suck. Here some quick tips that I’ve been trying to implement over the last couple months: 1. Unsubscribe from any newsletters you haven’t read in the last month. The information won’t disappear if you don’t read it. If it’s important, you’ll run into it somewhere else. More emails is more noise; kill the noise, be realistic about how many newsletters you can read. 2. Use Unroll.me to manage newsletters you want to read. This tool bundles all email newsletters into a single daily email, reducing noise throughout the day. 3. Setup Gmail filters for any transactional emails that you never actually read…

Continue Reading

Manage Your Psychology

I make the most progress on programming, design, and other creative work in the morning. I process email best after accomplishing one big item. For me, A 30 minute meeting destroys at least an hour of productive work time; context switching has a high cost. I know these things about myself and try to mitigate any activities that trigger these “black holes” of productivity loss or momentum killers. Don’t let your workflow be defined by your surroundings. Know how you work and defend the process that works best for you.

Continue Reading

Your Brain Isn’t for Remembering

I’m reading through the productivity classic Getting Things Done. This book has helped me create systems to manage the deluge of information thrown at us every day. The never ending stream of information is overwhelming if not managed with discipline and systematically processed using systems. That’s what this book is about: creating systems to manage constant streams of information. One of the main points that David makes is that our brains aren’t made to remember information when we need it. Our intellect is great for creative thinking, but remembering that you ran out of paper clips when your at Walmart isn’t where we excel – especially when we’ve processing information all day long…

Continue Reading

Multi-Engine Rails 3.2 Testing Tips & Tricks, Part 3

This is a continuation of my second post on setting up a CI server for a multi-engine rails 3.2 application. Use `Pry.rescue {}` For Dynamic `binding.pry` Getting access to an interactive REPL is essential when debugging a web application. Better Errors does a great job when when interacting with the app directly (in rails4 this functionality comes built in). binding.pry is a great tool when interacting with your code directly in your development or testing environment. However, there are some cases where adding binding pry to just the right place is either painful or would require you to modify a external gem. An easy way to get around this is to use pry-rescue which will open a pry REPL wherever an exception occurs…

Continue Reading

Setting up CI for a Multi-Engine Rails 3.2 Application

I recently setup continuous integration (via CircleCI, which I’m really impressed with). It ended up being a bit more tricky for a couple of reasons: I needed to pull semi-static seed data into the application. For this app, this was product data that isn’t changed often and is pulled from an external system. I wanted to use seed data from the production database because the integrity of the data in the external DB couldn’t be trusted and I wanted to ensure that if the tests passed it was a real representation of if the app would function in the live environment. There were a number of custom rails engines that app was compromised of. Each of these engines had separate unit tests, but not separate integration (feature) tests…

Continue Reading

Busyness is Laziness

I hate saying I’m busy; I cringe when I hear myself say “I’m good, it’s just been busy!”. It’s so easy to do, and it feels so good; “I’m busy: I’m accomplished and valuable. People want me involved in projects.” Tim Ferris is right when he says “being busy is a form of lazyness”. It’s hard to swallow; but it’s the hard truth. If you are always busy, you aren’t being disciplined in managing your tasks, effective enough at delegating your work to others, or creative enough at eliminating work through automation. Busyness is not effectiveness. The number of hours worked does not equal results.

Continue Reading

Rails & Yosemite: Resolving libv8 and therubyracer Installation Problems

As a developer, upgrading to a new OS is always a task, especially when it comes to rails dependencies (surprisingly, Cocoa projects didn’t have as much of an issue with Yosemite). I always wipe my machine and start fresh. This introduces a new class of problems, some of which I was able to mitigate this time around with mackup (a preference backup and restoration tool) and some upgrades to my dotfiles. I customize bundler to work in parallel, store all gems for a given project in the vendor/ directory for that project, and to not use shared gems at all…

Continue Reading