Have a plan when traveling

This is as much a note to myself as anything. Hopefully someone else will see this and get some value from it.

In theory, I love plans. In practice, I don’t do them nearly enough.

Recently this was illustrated to me while on a business trip. Normally I’m very “go-with-the-flow”, but recently I’ve discovered that when I compared my past trips to people who took the same trip my experience was quite different from theirs.

A quick analysis revealed that my relaxed approach to my trip resulted in a lot of “lost” time and opportunities. I wasn’t being intentional with my efforts so as a result I had a very so-so time. Or worse, didn’t see anything exciting and new.

So now when I have a trip I’ve learned to make a rough itinerary of when/where I need to be, and then look to see if there’s anything interesting I could do in the time between events.

Example Scenario: You are going to fly to a new town for 3 days of training. The training takes place 4 blocks from your hotel, and from 9am to 4:30pm. This leaves a lot of time in the afternoon/evening that could be wasted if it is not planned. Also on the last day your flight leaves really late in the day. So what should you do?

Here’s how I’ve started approaching this:

  • What restaurants are near the 2 locations? What 3 looks the most interesting for dinner? (Go ahead and pencil those into your schedule)
  • Are there any interesting attractions within a few blocks of either location? Try to find 3 things that would be cool to see.
  • Are there any landmarks (baseball stadium, museum, bookstore) that would be awesome to visit? Write those down

At this point you have a bunch of options!

Making a decision

So, now with your list of things to do if you ever reach a point where you don’t know what to do (or eat), just look at the list! You can decide to do something other than what is on the list, but at least now you will have a starting point.

For me this solves the greatest problem: coming up with something on short notice. It is much easier to choose from a menu of options than it is to conjure up something new on the spot.

Having too many choices can be paralyzing. Even a little bit of list can act a guide post to get you to something quickly.

And remember: Just because it isn’t on the list doesn’t mean you can’t do it. The list is just there to keep you from sitting around doing nothing.

Because doing nothing is the worst. Action. Always take action.

Problem Discovery: Finding pain points to help others

As a programmer I’m usually up to my ears in problems. Problem discovery is something I recently came upon as a technique to help build a business. Basically you find a problem that people have, then build something to address the problem.

But of course its not that simple, how do you even start with something like this? I’d like to share with you a recent experiment I did where I attempted to do some problem discovery on a pain point I was experiencing: Finding a master mind.

Continue reading

Hiring Hacks: Make a schedule

“Goals without deadlines are just dreams”

Time is a resource. The interesting thing about time is that we all have the same amount, 24 hours each day. The thing that separates effective people (you know, the ones we all secretly grumble at) from everyone else is how they use that time.

Making a schedule of how you are going to spend your time is one of the best ways to make sure you get lots of things done. I have discovered a few tips and hacks on how to make the most of a schedule.

  • Plan out your schedule on one day (and plan several days)
  • Make no task shorted than 15 minutes
  • Make no task longer than 1 hour (unless it is an interview or something in-person)
  • Batch like tasks together

Plan out your schedule

If you try to decide what to do right before you do it… you are not going to get much done. You would do much better to try and make your schedule the night before, when you are not focused on the “OMG, I gotta get something done NOW NOW NOW” frame of mind.

Along the same lines I have found that if I go ahead and plan out a week’s worth of time I tend to get more done: It allows me to objectively look at my tasks (such as writing a blog post) and figure out where and when would be the best time to do it.

There is also a certain peace of mind that comes from having things mapped out. On any given day you know what you should be working on, so you can just go do it. No energy is wasted on trying to make a decision, the decision has already been made. All you have to do is… do it.

Length of tasks

I feel that on your calendar no task should be less than 15 minutes. If it takes you less than 15 minutes to do something, then that’s fine. Use the remaining time to do some filing, clean up your desk, etc. Trying to cram 10 1 minutes tasks onto a 10 minute block on your calendar is a waste of time. Seriously. At that point it is just busy work because you are spending more time entering the tasks than you are actually doing them.

On the other side of the coin, I would not make a task longer than an hour. Sitting for too long can cause you to get distracted. I like to break up long tasks into multiple entries on my calendar, either over several days, or with some other unrelated task in between. By putting this constraint on my tasks I find I’m more productive and effective with my time. A quick pro-tip: If you have a multi-hour task, try to put a block of time for physical activity in between session. Getting outside and getting the blood flowing is a very effective way to keep mentally alert and to keep the creative juices flowing.

Batch similar tasks together

When you are in the zone you are unstoppable. So why break up your streak by doing wildly different tasks? Context switching can be very expensive, but if you can stay in the same frame of mind as you switch tasks you will find you can get more done.

For example, imagine that you need to update your resume, clean your office, write a blog post, and make some phone calls. If you schedule the blog and the resume back to back, you will probably get more done faster because they are both writing tasks. If instead you decided to do the phone calls in between the writing tasks… well there’s no telling when you will get around to finishing the 2nd task. Phone calls seem to take forever!

Personally, I like to try and schedule phone calls and interviews in the afternoon. I find I’m more creative in the mornings and more social in the afternoons. By scheduling my day around these “facts” I find I get more done (and usually faster).

Wrapping it up

Make a schedule. Make it several days in advance. Make it around your strengths. Follow the schedule. Make it happen!

Mosh, tmux, and twitter: Keeping up on the go

I’m a big fan of twitter and I wanted to share some tips to help everyone get the most out of it. Here’s some of the hacks I’m doing that make using twitter faster and more effective for me.

Here’s the TL;DR version for the impatient:

  • Use a text based client
  • Run the client on a remote machine (or IN THE CLOUD)
  • Use tmux to get the most out of your session
  • Use mosh to have a seamless connection
  • Use twitter lists to get a laser focus on important topics/people

(Follow me on twitter for more stuff like this! @nloadholtes)

Text is where its at

With only 140 chars (and occasionally some pictures), twitter is all about text. So, why not use twitter in a place where text is king: the command line!

There are several command-line twitter clients out there. I’ve been using rainbowstream for a few months, and recently started trying out krill. They each have their pluses and minuses, so I encourage everyone to try them both out and see which one appeals to you more.

Rainbowstream is nice to look at because of its adjustable themes. But… I’ve noticed it tends to “hangup” on the stream and I have to re-switch back to my stream to ensure it updates. Krill is relatively new to me, so far it seems really stable, but doesn’t look as nice as rainbowstream. Krill also has the ability to follow RSS and other formats which sounds awesome. Currently I’m running both side-by-side in a split tmux panel. More on that in a minute!

Run the client on another machine

Every time you close your laptop, you lose your network connection. Wouldn’t it be cool if you didn’t lose your place in the stream? Tweets will come in while you are away, but scrolling backwards will be time consuming.

So, run the command line clients on another machine! Cloud based machines are dirt cheap these days, and they are a snap to set up. If you have one running already, adding these clients takes up almost no resources.

Or… if you are like me and you have a RaspberryPI laying around… you can use that! I set mine up at home and configured my router to route incoming requests to it so I can easily access it no matter where I go. Its always on (thank you battery backups!), so it keeps track of the conversations going on while I’m asleep/commuting/out-and-about. Using ssh keeps it secure and an snap to log into.

The big guy keeps an eye on it for me

The big guy keeps an eye on it for me

And since the command line clients are so lightweight, I can run lots of stuff (like an IRC bouncer/client, a bitcoin miner, etc.) on it with no problem.

Right now you’re probably saying “But hey, you still need to log into that machine every time you open you laptop!” Well…

Use mosh to connect, and tmux to manage!

While I can use ssh to connect to the machine, if the network connection goes down I have to re-login which can be a pain, especially if you happen to be on a very flaky internet connection (like at the coffee shop or at my office). That why you should use mosh. Mobile SSH Shell is a very cool project that uses SSH over UDP/IP. Since UDP is designed to work on unreliable networks, this is the perfect solution.

When mosh (on your computer) notices the network connection goes down, it will try and contact the remote host. When the network comes back, it will automatically reconnect, and update the terminal. The end result is that you can drop in and out without really knowing it, yet you never miss anything!

I mentioned earlier that I was also running an IRC bouncer/client. How I’m going that is with tmux which is a “Terminal Multiplexer”. It basically allows one ssh/mosh connection to have multiple terminal windows. tmux is awesome and if you get nothing else from this article you should go learn and use tmux. (If you are familiar with “screen”, tmux is a much much much better alternative. If you’ve never heard of screen… excellent.)

So, how I’m using this whole set up is this way:

  • mosh into my RaspberryPI
  • start up a tmux session
  • make one pane for twitter, another for IRC
  • Never look back. 🙂

From that point on, until one of the machines reboots, my computer will automagically reconnect (via mosh) and show me what’s happening on twitter or IRC. AWESOMENESS!

This is what my setup looks like:

A screenshot of my twitter tmux setup

A screenshot of my twitter tmux setup

Use the lists!

A while ago twitter rolled out a feature called lists. Lists are just ways to subscribe to users but not have them in your normal timeline. The beauty of this is you can now create lists centered on a topic, and fill it with relevant accounts.

For example, I have a list called “funny” that has some accounts that spew out jokes and other humorous quips. I also made a list called 5 which is a very focused list of people who I think are doing important and inspiring things, and these are people I should pay attention to. (The name of the list is from the Jim Rohn quote “You are the average of the 5 people you spend the most time with”.)

I then use the command line clients to watch these lists. Since the lists are focused, the are not as “active” as the normal timeline. This way I can cut back on the distractions and time suck that the normal twitter timeline can become.

On a normal day I check in on the 5 list a couple of times, and occasionally check funny, or one of my other lists. The beauty is now I’ve trained myself that it isn’t necessary to check twitter constantly because a) it won’t “update” as frequently, and b) when it does, I’m more likely to like the content.

Wrapping up

Use a lists to get focused on a topic that is important to you, use a command line client to keep it fast & clean, and host it somewhere other than your machine using mosh and tmux for extra awesomeness.

Here are the links to everything:

How to identify what to measure

My last post about metrics really got me thinking. Most GTD programs don’t really talk about improvements from a dead stop, they are more concerned about changing your process. But altering how you implement your process can have a huge impact.

Here is a suggestion on how to identify what to measure:

  1. What is causing you pain?
  2. What causes the pain to occur?

Step 1 is all about prioritization. Pain is bad. If something is causing you pain, you want to stop it. You need to stop it. So pick the thing/item/problem that is causing you the most pain. This is what you need to improve or fix.

Step 2 is looking at what is causing the pain to occur in the first place. Once you know the factors that are contributing to the pain, you can try to change them. If you are doing the right thing, the factors contribute less, and the pain should go down.

For example: Let us say I want to write more python code. My day job doesn’t involve much python, so I feel like I’m being left behind because all of the cool kids on reddit are talking about the fun they are having writing python code.

The pain: Not being able to write in the language I want to. The cause: Day job doesn’t use python.

Addressing the cause will affect the “pain”. If you get a different job (e.g. one that involves writing python code) then you have solved both problems.

But what if you can’t just switch jobs? Then you try experimenting with writing python code for your own personal use. Try writing it to solve scripting problems on your PC at work. If that makes you feel better, then you are moving in the right direction. If you try writing open source code in python in your after work hours, but it winds up stressing you out, then you are moving in the wrong direction. (Or you’ve identified that there might be a different problem than what you originally though there was!)

By tackling the sources of your pains, and applying small changes there, you can get a measure of where your efforts are going. Sometimes these measures are going to be cold hard numbers, and sometimes they are just going to be “feelings”. But either way, they are indicators of how you should change your processes and habits in order to become more successful.