Friday, March 6, 2009

Defragmentation For Your Life

On a computer, it's not always just how much memory you have available. Sometimes, you can have lots of RAM and ROM, but it's scattered in fragments. When you need to store a fifty megabyte chunk of data, having fifty one-megabyte chunks of space scattered around won't be very helpful. Even if there is a big enough chunk somewhere out there, it might take longer for the computer to locate it.

In real life, all too often I find I have lots of time in a day, but it's broken into dozens or even hundreds of fragments. With tiny annoying little irritations, although all together they total only a few hours, they make it seem I had less than 30 minutes of real free time when I technically had 12 hours.


LINKED LISTS FOR LIFE

I've observed I tend to perform a default action to solve the problem of over-fragmentation in my life. When I need to spend some serious time on a project, but I have distractions every half hour, I simply break the project into pieces. This is entirely analogous to linked lists in a computer program. I could write a whole separate article about linked lists, but to put it in a sentence: linked lists are a way of breaking large chunks of data into lots of smaller pieces.

Just as it's easier for the computer to find hundreds of 10-kilobyte chunks of spare RAM than it is to find a single contiguous 5 megabyte block, it's easier to find lots of little blocks of spare time in life, than it is to find a real chunk of time to devote to a project.

Linked lists also have the advantage that if the data suddenly outgrows the space formerly allocated for it, the computer doesn't have to copy the whole massive chunk to some bigger slot. The new data can be added wherever there's room for it, and the already-stored data doesn't suffer growing pains. This is analogous to how if I'm doing my project in small pieces, it's less of a pain when the project ends up requiring more time than I estimated.

The problem with linked lists is that they come with a price. They add storage overhead, because each individual piece of the data must be accompanied by some extra data to tell it where its neighbors are located. This overhead is often negligible, but if the individual chunks are much much smaller than their sum (for example, dividing a megabyte of data into little 5-byte chunks) then the overhead becomes more and more significant. It also takes much more time for the computer to browse the data stored in a list. It has to keep jerking its attention back and forth all over your RAM chip, playing a deranged game of "scavenger hunt" to find the list's contents.

The analogy with real life is perfect. When we divide a project into pieces, there's more overhead. If we break the project up into too many pieces, we end up spending more time opening and closing our sketchpad than we spend actually drawing on it. Take this blog, for example. I find I build momentum as I write an article, but if I have to stop midway, I lose it and it's easier to just start over from scratch than try and start in the middle. Right now I have four great articles half-written, and tragically they might never see the light of day.

A more subtle problem with linked lists is that by their very nature, they further fragment your RAM. When my free time is fragmented and I break my projects into pieces, my remaining free time becomes even more fragmented because now I keep getting interrupted by those new pieces. If I have another project, I'll have to break it up even finer, and so on and so on until the universe explodes because I forgot to check whether "malloc" returned NULL. ;)


DEFRAGMENTATION FOR LIFE

The other strategy for dealing with fragmentation, is less automatic, and takes focused self-discipline. This is defragmentation. Or, in simpler terms, the art of organizing things better so your free space (or free time) isn't so full of annoying little interruptions.

For example, if you did your whole work week in a single frantic workday, just think of what you could do with the rest of the week! If you're one of the typical workers in this civilized world, it might be difficult to even imagine in precise details what you'd do with that much free time. Try thinking first what you'd do if every weekend was a 3-day weekend, and then gradually increase it until every weekend is a 6-day weekend.

Too bad most bosses won't let you get away with that. I wonder why not, though? With many jobs, it'd be entirely possible to do the whole work week in one day, if you really put some spirit into it. Heck, when I was an Air Force Weather Forecaster (a desk jockey job), I spent 90% of my time pretending to be busy while letting some TCL scripts do most of my assigned work!

Besides organizing the "data" (projects) you already have, another way to defragment is to get rid of data (projects) you don't need. I've been spending a lot less time studying Japanese lately. It really kind of pains my heart, cuz of how much I love Japanese, but I've come to understand that learning Japanese is purely a luxury, essentially a very fascinating computer game. When I went to Japan, all the natives wanted to practice their English on me. I certainly never intend to work in Japan, where workers are enslaved even worse than in the U.S.

When I was a senior in university, my (social lifeless) lifestyle had me using my apartment as nothing but a place to sleep. I didn't usually even eat there. The act of walking to and from the damn place was time thrown to the wind, not to mention a huge daily interruption. I realized this, moved into the physics undergrad lounge (read: Homeless By Choice), and saw a dramatic improvement in the layout of my free time. (I also saved a crapload of $$$!)

One way to organize "data" (projects) to defragment, is to clump similar things together. The obvious example is, doing one big grocery run once a week instead of every other day. It's a catch-22 because if your time is too fragmented, you don't have time to do a big grocery run! You might have to start smaller and work your way up. But boy is it worth it. Not only do you shave off the overhead of unnecessary trips to and from the grocery store, thus upping the quantity of your time, you also up the quality of your time cuz now you're not constantly interrupted just to buy food!

Something small you could do right now to better manage your time, would be, resolve to do one big blog/forums/email roundup once a day, instead of constantly checking these things all day. You'll see the same blog articles, forum posts, and emails in the end, but now the quality of your time is better (and you even have a little more time since you're opening and closing windows less often).


DEFRAG OR LINKED LISTS??

In computer programming, some data is better chunked together into a big block, and some data is better broken into linked lists. The same goes for real life. It wouldn't be a very good idea to do one big dishwashing project every week. On the other hand, it'd be very inconvenient to take dozens of 5-minute showers all day, or clip your fingernails one nail at a time.

Use some common sense to figure out which projects are better organized, which projects are better broken up, and which projects are better deleted. Then enjoy being your own master, making the most of the precious free time in your life.


FURTHER READING

While I was writing this article, my girlfriend tried to get my attention twice, once for laundry and once for Para-para. I decided to tell her, "let me finish this first!" My natural instinct was to fear this would upset her, but the truth is, if I let her interrupt me, it would've put me in a foul mood and that would upset her far more in the end (as well as upsetting me). See Leadership In Relationships for more observations like this.

One place I really learned a lot about time management was in Air Force Boot Camp. Click there to read about my journey through the air force trainee pipeline. If a screaming, furious drill sergeant isn't enough to get your time organized, then nothing is.

I've found that with massive amounts of flashcards (spaced repetition), it's better to go with the linked list strategy. See my article, Dealing With A Neglected SRS Deck.

2 comments:

HarrisonGlen said...

Excellent analogy for smart time management. Also I find that if you plan on doing a project in one large time slot, it just causes you to procrastinate. But if you set aside fix, short time limits, you are more likely to move yourself to action, concentrate better, and get the satisfaction out of task completion. This applies especially to ongoing projects like Japanese. Khatzumoto calls this "Timeboxing" and it has been really useful.

Tibul said...

Great article I've always had problems with time management and procrastination in the past from setting myself too large a task in one session braking them up into simpler smaller tasks does tend to help in getting it done.

I also know what you meen about getting interupted in the middle of task it realy does throw your mind off and can be hard to get back to it this is usualy the time I snap at my wife lol

 
Privacy Policy