Simple Daily Planning Template

TL;DR: Here’s a simple excel template to help you plan your daily routine and (hopefully) increase your productivity.

For the impatient, download the: Daily Planning Template

Daniel Markovitz wrote an interesting article on blogs.HBR.org titled “To-Do Lists Don’t Work”. I agree with Daniel that traditional to-do lists lack “commitment devices” and I’ve definitely felt overwhelmed while staring at a to-do list with 1000+ items. The antidote to this is called “living in your calendar” which means putting everything you need to do in your day onto a calendar format so you can visualize how much time you really have in a given day and to challenge yourself to finish tasks within the time you’ve allotted to them.

The benefit to me is that I feel more comfortable planning my day first, focusing only on the current day’s tasks and then putting myself in “go mode” to just get stuff done. I can fully focus on getting one day’s worth of tasks completed without having to go back to “planning” mode to re-evaluate all the other tasks which are vying for my attention.

The truth is that I ‘m rarely able to fully complete my day as planned (hey, life happens) but I’m WAY more productive when I “live in my calendar” than when I’m ping-ponging between planned and incoming tasks.

Implementation

In the last couple of months I’ve switched from a fairly complicated GTD setup with recurring reminders, synchronized web and iPhone apps, etc, etc. to a simple task outline on Workflowy which I transfer to a daily excel calendar template (attached below). I’m not sure why I didn’t just use my google calendar – there might be a good reason, I just can’t remember it now! The whole setup is much simpler (almost zero overhead to manage) and I’m now more productive (which is the whole bloody point, init!)

Observations

Seeing my todo list as an outline on Workflowy helps me see the forest for the trees and then putting tasks on my calendar helps me be more focused and productive when it’s time to get stuff done. When you’re working off your calendar you’re much more aware of how long tasks are actually taking to get done and although time pressure is typically something that can be a source of stress, setting your own time pressure feels more like a challenge than a burden.

Another interesting finding – the old adage of estimation is very true for me: “When estimating how long something will take to get done – double the estimate and add 50{2613636e9c0ce347f6beeeae54af0a1ea89889b5976f2999c26e569625966651}”. My initial estimate on how long this post would take to write: 30 mins. Time it actually took to write, proofread and publish this article: 1h 27mins (go figure).

Please let me know if it works for you in the comments!

Efficient Text Editing on MacOS

tl;dr Bind Command + “j”, “k”, “l”, and “;” to the cursor movement keys for a more fluid, productive text editing experience on MacOS.

(For the impatient: Jump straight to the implementation)

I recently read a great post by Jamie Buelta titled “Vim speed is not really the point“. In the post, Jamie argues that the benefit for investing the time to install Vim or Emacs keybindings into your muscle memory is not because it makes you a faster coder but because it allows you to focus more of your conscious mind on the logic of programming and less on the administrative thoughts like: “how do I get the cursor to the beginning of that word”. Jamie’s point is that speed is not the goal but rather, it’s the feeling of calm control that is the real reward for all the hard work that you put into learning your code editor.

With that idea in mind I’d like to share with you a rather unusual keyboard binding scheme on MacOS that I find very comfortable and efficient and which helps me to compose text without thinking to much about the mechanics of moving the cursor. This works for all native Mac apps and, with some additional finagling, Emacs too.

The Basics

The basic concept is to bind the cursor movement keys to Command + “j”, “k”, “l” and “;”. This is an idea as old as dirt but I’ve never see anyone implement it MacOS-wide. The obvious benefits of this approach is that it allows you quickly move the cursor while keeping your hands comfortably on the home row in any MacOS app, dialog box, etc.

I’m not sure exactly where the inspiration for this came from but if you’ve ever used vi or WordStar you’ll find this quite familiar. I’ve been using it for many years and I’ve found it works well across many different scenarios whether you’re typing email, blog-posts or coding.

I’ve found that the best configuration for me is to bind “j” to left, “k” to down, “l” to up and “;” to right. Vim users will probably be screaming at the sacrilege but hey, that works best for me (and I’m not a regular vim user so it doesn’t conflict with my muscle memory). If you ARE a regular Vim user then just go ahead and modify the instructions below to your liking, k?

Other Useful Bindings

Moving by word is achieved by pressing Command and Option together with “j” and “;” respectively. I like this because you can very quickly “zero-in” on the character you want to edit by holding or releasing the option key as you get closer to the point you’re seeking towards. It sounds complicated but it ends up being really easy to learn and integrate.

I’ve bound “move to beginning of line” and “move to end of line” to Command + “h” and Command + ‘ (single quote) respectively. It may seem weird to use the single quote character but it feels very natural and I almost never hit the enter key when I’m trying to hit Command + ‘. I should mention here that I chose these keybindings because I felt they were ergonomic and corresponded to the direction of the cursor movement and specifically NOT because the first letter was a mnemonic for the command (YMMV).

Another binding I find useful and use all the time is Command + Option + “k” which is bound to PageDown and Command + Option + “l” which is bound to PageUp. This is especially useful on my MacBook because I always forget where Apple hid the PageUp and PageDown keys (it’s bound by default to Fn + Up Arrow).

Selecting Text

Pressing Shift with any of these combinations allows you to select words. For example, holding Command + Option + Shift and tapping “j” selects by word to the left and Command + Option + Shift + “;” selects by word to the right. “Command + Option + Shift” sounds like a horrendous key combination but it’s actually pretty comfortable if you press the Command key with your left ring finger, Shift with your left pinky and the Option key with your thumb (curled under slightly). Reading the previous sentence aloud still makes it sound pretty horrific but I encourage you to give it a try for a couple of days and then if you still don’t like it THEN you can flame me.

An aspect of this setup that I like is that all modifiers are under your left hand while the movement keys are under your right hand. This avoids the awkward (to me anyway) left-hand or right-hand only keybindings like Command + “a” and Command + “e”.

Details and Implementation

To implement this scheme I use the excellent Keyboard Maestro which at $36.00 US is a steal for all the features it provides. If you are a productivity junkie like me you’ll just love everything that Keyboard Maestro can do for you. You can also the free and open source KeyRemap4MacBook to achieve the same goals but it’s trickier to setup. In this post I’ll show you how to setup this scheme up using Keyboard Maestro.

Firstly, an important element of this setup is to swap the Caps Lock and Command keys. You could achieve the same basic result by leaving the command key in the default location next to the space bar but it would make “move by word” and selecting text a lot more difficult (plus you would loose some geek-cred).

Go to System Preferences -> Keyboard -> Modifier Keys and choose Command next to the Caps Lock drop-down:

MacOS Keyboard Preferences

MacOS Keyboard Preferences

This means that you’ll give up your Caps Lock key but frankly, I’ve never missed it myself (there are ways around this problem but that will be for a future post).

Next, create a group in Keyboard Maestro called “Movement Keys”. This will allow you to easily turn these shortcuts on and off.

In the “Movement Keys” Groups, tap the “new action” button and choose Interface Control -> Type a Keystroke

In the simulate keystroke box tap the right arrow key. You should have the following in Keyboard Maestro:

Keyboard Maestro Editor

Keyboard Maestro Editor

Repeat the above with the following bindings and enjoy the sweet, sweet taste of lightning fast text editing!

Macro Name Hot Key Simulate Keystroke
Move Char Right Command ; Right Arrow
Select Char Right Command Shift ; Shift + Right Arrow
Move Word Right Command Option ; Option + Right Arrow
Select Word Right Command Option Shift ; Option + Shift + Right Arrow
Move Char Left Command j Left Arrow
Select Char Left Command Shift j Shift + Left Arrow
Move Word Left Command Option j Option + Left Arrow
Select Word Left Command Option Shift j Option + Shift + Left Arrow
Move Line Down Command k Down Arrow
Select Line Down Command Shift k Shift + Down Arrow
Move Line Up Command l Up Arrow
Select Line Up Command Shift l Shift + Up Arrow
Beginning of Line Command h Command + Left Arrow
End of Line Command ' Command + Right Arrow
Page Up Command Option l Page Up
Page Down Command Option k Page Down

Files

Here’s a zipped copy of my keyboard movement file for Keyboard Maestro. To install click the Keyboard Maestro icon in the toolbar, choose “Launch Keyboard Maestro Editor”, File -> import macros and select the file.

Caveats

This scheme is really only good for touch typists who want to keep their hands on the home row.

This scheme also overwrites some other common key bindings (e.g. Command + l is “go to location” in Chrome for example). I’ve got around this problem by rebinding those often used to keys off the home row (the u,i,o, and p keys work best in my experience). Since Keyboard Maestro allows you to scope keybindings to each application this ends up working very well and you can reuse the same keys in different apps. Happy editing!

Tip: Check Your Calendar First

Do you ever run into the problem where you sit down at your desk with the goal of getting that important report done only to find that it’s 11am and you haven’t started yet?  Well, here’s a tip for getting off to the right start on your day:

Check your calendar and your todo list before jumping into email.

Pretty simple right? Don’t be fooled – it’s a very powerful technique. Here’s why it works:

Our brains are wired for newness and novelty and so we’re very attracted to the “unread” emails that have appeared in your inbox since the last time you checked it. Once we open the first mail we have unconsciously re-prioritized our day according to the messages, requests and spam that other people have sent us.

By checking your calendar first you remind yourself what hard commitments you have made to yourself and others. Then you check your todo list (you are using a good todo list, right? 🙂 to remind yourself of your other pending high-priority items. Once you have a clear picture of what your day looks like only then should you check your email for emergency emails.

Now we’re at the brink of a trap that many people fall into (myself included) : If there are no emergency emails then you need to close your email program and get to work on your highest priority item (unless of course if you have a meeting).

It’s a simple idea but surprising difficult to implement. Let me know your thoughts, feedback in the comments.