« Easter at workGit to fogbugz with perl »

Fri, Mar 30, 2012

[Icon][Icon]Your own elephant

• Post categories: Omni, My Life, Helpful

I read an article a while ago, which talked about how humans have started offloading their memory to computers, using an ancient phenomenon called "transactive memory" - if you're an Indiana Jones fan, you'll be familiar with the concept as stated by Sean Connery: "I wrote them down in my diary so I wouldn't HAVE to remember."

I mentioned that we use Fogbugz to track our tasks at work. It does a good job of organizing our workload, but it's not the only thing I use to remember things I need to do - not everything that needs doing makes it into FB; nor does everything that needs to be added to FB get mentioned somewhere where it's possible to add it immediately.

Because I'm inherently disorganized and prone to forgetting things, to avoid letting things slip I have two vital tools: A notepad; and gedit.

In the early days, I just had the notepad, and a somewhat slapdash approach - if I needed to remember anything, I wrote it down in the pad.

That worked for "Discuss something, make a note, go back to desk, FB it" types of issues. But then if I made a note about something that I couldn't act on for a while, it did have a tendency to get lost in the shuffle. So over time I found myself having to add slightly more to the process.

So now, the first thing to do in the morning is to write the date in the pad - this way if I need to refer back to something I wrote a month ago, I can find it without looking at every page.

Put big asterisks/stars by every "todo" you need to handle. If you have a decent pen then colour-code them. I use red for "official" work-related todos, blue for reminders to myself, etc.

When you've dealt with a *'d item, cross it out. When all items on a page are dealt with, put a big line across the page. With the caveat that you can only do so when the previous page has also had a line through it - this way if you have some reminder a page or two back, it can't get lost by accident: the un-lined page forces you to backtrack until you find the * that's stalling you. If everything you need to remember is *d and you can't lose *s, you have a very reliable transactive memory.

So that's the paper scratch pad dealt with. Now the e-version.

For actual code editing, I'll take Vim over any other editor. However, it's not ideal for scratch usage. Gedit does the job much better - it's easy to copy & paste to & from; it's easy to have multiple tabs; it's easy to have it save changes to disk periodically.

So I always have at least two gedit windows open, each of which has multiple tabs. The first has 10 tabs, and is a simple dumping ground for anything I might need - relevant log outputs, debugs, variable dumps, code snippets, etc. I work my way through in a loop, over-writing the oldest document with new data so I have a permanent stack of stuff I've been using for recent tasks. Very handy.

The other is more permanent and more organised. The first tab is my main todo list - this is where most of the *'d items on the paper pad get put if they don't merit a FB entry. I go to this multiple times throughout the day. You might wonder what the advantage is over having TODOs in a gedit window instead of a notepad are. They're twofold: Firstly, my notepad has lots of things other than TODOs in them, so it's easier to track them in a single gedit document where they're uncluttered & can be moved up and down in priority; secondly, I occasionally get stuck working from home, and I can remotely access a gedit document a lot more easily than a notepad on a desk 30 miles away. And it's always current because the document auto-saves every ten minutes.

The other dozen or so tabs are subject-specific, with titles such as perl, vim, git, js, etc. I often come across something useful to know that I know I'll want to know again in future, but won't use often enough to remember it unassisted. So it gets an entry here, where I can find it quickly & easily next time I think "I know I've done this before, how did I do it?" Hopefully, as I use things in here more & more, it gets ingrained enough that I can remember it unassisted & remove the entry. So I have things here like:

  • setxkbmap us/gb - switch keyboard layout
  • mkdir -p to implicity create subdirectories
  • git show sha:file - view file as it was at the time of that commit
  • .*? - non-hungry regex matching
  • $#foo - returns the maximum index of array @foo
  • ssh host -L myport:localhost:theirport to create an SSH tunnel

and so on.

It might seem like a lot of hassle and organization just to remember things. It's really not a time-consuming process, though - a few seconds here & there is all. Sadly, the reason I evolved the system & stick to it scrupulously is that it's the only one I've found that works. I don't remember everything, or even close to everything. But I do make sure that nothing important or useful gets forgotten. And that's a Very Good Thing™

1 comment

Comment from: Hari [Member] · http://harishankar.org/blog/
I have this nagging feeling that if I start relying too much on external aids, my brain might start losing its flex and memory capacity.

Especially with computers, it's possible to start documenting too much stuff for future reference and conditioning your mind to forget the details.

My theory is not scientific, but I have this feeling that too much organization and documentation is not a particularly good thing.
03/04/12 @ 15:47

[Links][icon] My links

[Icon][Icon]About Me

[Icon][Icon]About this blog

[Icon][Icon]My /. profile

[Icon][Icon]My Wishlist


[FSF Associate Member]

December 2017
Mon Tue Wed Thu Fri Sat Sun
 << <   > >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


User tools

XML Feeds

eXTReMe Tracker

Valid XHTML 1.0 Transitional

Valid CSS!

[Valid RSS feed]

powered by open-source CMS software