Archive for June, 2010

How to Nap

Key Insight:

Nap for exactly 20 minutes.

A Common Mistake

I’ve never had trouble sleeping. My problem would fall in the opposite category: by modern society’s standard, I sleep too much. I need at least 7–8 hours of sleep a night or I become a zombie; I can function but higher-level skills (concentration, insight, creativity…) are reduced.

If I lie down and try to nap, I’m usually gone for 2–3 hours. That’s a sizable part of a day! It’s neither desirable nor always (if ever) possible to disappear like that.

Simple! I have a kitchen timer and I set it for 1 hour. That’s reasonable, right?

When the alarm rings, I “wake” up. But all my body want is to go back to sleep. At this point, if I get up I feel terrible and it takes hours until I feel fine. If, instead, I go back to sleep, I’m gone for another hour or so.

I’ve also tried sleeping for 30 or 90 minutes without much success.

A Solution

I realized I was doing something wrong.

So, I googled:
google: how to nap

Beyond the platitudes like go to a quiet place, lie down, and close your eyes there were a few articles that talked about durations.

From about.com:

Sleep comes in five stages. If your nap takes you from stage 1 sleep (just drifting off) to stage 2 (brain activity slows), you will wake up feeling energized and more alert. If your nap takes you into stages 3 and 4 (deep sleep), you will not wake easily and will feel groggy and tired. Sleep stage 1 typically lasts about 10 minutes and stage 2 lasts another 10 minutes. That makes the 20-minute nap ideal for most people (your time will vary to some degree, experiment to learn what works best).

I’ve heard about 20-minute nap before but I’ve always dismissed it: “How can someone feel rested after only 20 minutes?!”


  • if I lie down and think for a few minutes, should I reset the timer to another 20 minutes?
  • (rephrased) Is it 20 minutes from the moment I fall asleep? How am I supposed to do that?!

Implicit in the quote above is the idea that lying down and “thinking time” are an integral part of the nap. As long as you’re trying to fall asleep and not actively entertaining these thoughts: good job you’re doing it right! In that way, it’s exactly like meditation.

My Experience

I was very skeptical of the 20-minute nap. But I’ve been trying this technique for the last 2 weeks and it worked every single time!

I set the timer and lie down. Usually, it takes me 4–5 minutes to wind down. And when the alarm goes off it feels like I just fell asleep. It feels like “huh… was I sleeping?”

Another common experience: I think I’m awake and wasting my precious 20 minutes but when the alarm goes off it doesn’t feel like 20 minutes … I just “time-warped”.

Read Full Post »

I have a bunch of shell/ruby scripts in a directory that I include into my PATH variable. The scripts live there because I don’t have a better location to put them. That’s fine when scripts are general enough to be used anywhere.

Some scripts are not so general and are meant to interact only with a few specific files and directories.

Putting things in perspective: this is a discussion about global variables and local variables when it comes to Bash. You want your variables to be scoped only that was is needed and not more.

Here’s an insight:

Include a .local directory in your PATH.

For example:

forgetful, a project I maintain that implements the Supermemo algorithm, takes CSV files as input. I could use a spreadsheet manipulate these files, but I prefer to use Vim and a bunch of unixy scripts to do what I want. In the directory where I keep my CSV files, I created a subdirectory called .local (could be called anything). When I’m in the directory, Bash will include the .local subdirectory when looking for executables … in essence, I get my “local” executables.

Notice how there’s a Rakefile in that directory? I think that’s a workaround that a lot of people end up using. I’ll probably strip out most of what the Rakefile is doing and shove it to the .local directory.

Read Full Post »


Get every new post delivered to your Inbox.