Be Linux.

Imagine a place
where everything is possible
where everyone
can fly.


If you died tomorrow, would you feel like you did everything you could in this life, to make the world a better place for those you left behind?

Is your life “complete” at the end?

Think about that every day. Everything you do should be done with that in mind.

Everything.

Now go fly.

A long day that ends with a smile

Today was a long, grueling day at work, and of course my train back from the city was late, as always.

The high-point of the day was watching an older gentleman (50+ years old) try to force himself off of the train, and jump from a moving train onto the station platform. Apparently he was helping his wife onto the train but he was supposed to get back off. Instead, he sat down and was talking to her, ignored the PA system telling everyone that we were about to leave, and then the train started moving away from the platform.

He got up, ran full-speed down the train car, and tried to force himself past the train staff out the closing door of the train, to jump to the platform. The train staff had to literally block the door and hold him down to stop him from attempting to jump off of the moving train onto the platform.

Some people are just insane.

So instead, he had to wait for the next stop to get back on a train going the other way. The next stop was 90 minutes West, however.

But at least my days end with happiness and smiles now. And here’s one for everyone else.

So a priest, a rabbi, and a fork bomb walk into a bar…

And then the fork bomb walks into the bar…

…and then the fork bomb walks into the bar…

…and then the fork bomb walks into the bar…

Removing thousands of duplicate email messages from your email

Tags: , , ,

I’ve been slowly loading all of my mail into GMail in an attempt to try to use the system as a better way to manage my email, “folder-free”.

GMail uses the notion of tagging emails with “labels” and “Archival” of messages instead of the classic mail folder heirarchy. Productivity experts higher-than-me continue to praise the system as being better, so I decided to give it a try… on 10 years of my email; over 300,000 messages.

But today I noticed that some of my larger mail folders had duplicate emails in them. LOTS of duplicate emails (one folder had over 15,000 duplicates!). Removing that many dupes from hundreds of local IMAP folders was not going to be a fun task…

I looked around to find some good tools to do it, and came up with several shell scripts, Python tools and other home-grown things, but nothing I wanted to really try on my large email archive.

Then I found the Remove Duplicate Messages add-on for the Mozilla Thunderbird Mail client. I don’t use Thunderbird, and prefer to use Evolution or Outlook 2007 for managing my PIM data now (yes, I really do use Outlook 2007, because frankly, nothing even comes close to functionality in the Linux space).

But I decided to give it a try. I configured my local IMAP account in Thunderbird, let it query my folder list and then installed the add-on. Here is the process to delete those duplicate messages:

  1. When your IMAP account is configured in Thunderbird, expand the folder you wish to check for dupes.
  2. Right-click the folder and select “Remove Duplicate Messages” (highlighted in red in the screenshot below):
    Thunderbird Remove dupes (rightclick)
  3. A window will pop up after it scans for dupes, offering the following:
    Thunderbird Remove dupes (main window)
  4. Click on “Delete Selected” to remove the duplicate messages it found.

That’s it. It’ll move those messages to the Trash folder, and you can go in there later, right-click the Trash folder and select “Empty Trash” to permanently delete them.

Pretty simple and easy. Obviously make sure you back up your mail folders FIRST before you try any of this, just in case.

Update: After I ran this through all of my folders and deleted a lot of “legacy” mail folders (old 3Com palm-dev Palm mailing lists going back to 1999), I now have 144,962 messages in my local mail archive (a 52% reduction in number of messages).

Much better and easier to manage, search and back up to the FreeBSD backup array. It also removed 800M of space from ~/Maildir in the process.

Reducing the wallet bulk on the “Road to More Productivity”

I commute a fair distance to work during the week (275 miles round-trip). I love my commute and I love my job, but commuting that far means I need to carry some significant gear with me to work on the trains and in the train stations when my rides are delayed for any reason.

In that quest, I’ve been trying to eliminate the amount of things I carry, pare down my gadgets to using only one wire to the wall and so on.

I started looking at the things I carry on my person recently; keys, wallet, change, phone and other miscellaneous items, and stumbled upon “Just One Club Card“.

Just One Club Card is a site that has one purpose; to generate a multi-barcode, 2-sided card that you can use to consolidate up to 8 other cards onto one card you can carry with you in your wallet, instead of 8 cards.

(I’m very-much paranoid about security as well, but in this case, I think the FAQ on the site dispels some of the fear, and frankly I don’t care if someone is tracking how many ties or shirts I buy from Men’s Wearhouse or paper from Staples every month.)

I just used their tool to generate a single, double-sided card that eliminated 7 of my “club” cards from my wallet, reducing my bulky, back-pocket wallet by roughly 3/8 of an inch. I also removed my library card and a recently expired health insurance card, which decreased the bulk and weight even further.

Here’s an example of the output it created (slightly modified by me, for rounded corners and other smallish tweaks and obviously obscured barcodes).

Just One Club Card (example)

I printed this on HP Glossy Photo Paper @1200dpi, cut it out and sandwiched it between two high-quality sheets of laminate paper to make it bonded and thick/durable enough to last the war in my wallet.

There is even a nice little template for a sleeve to hold the card that has a cutout window, so only the relevant barcode can be shown, so you don’t confuse the barcode scanners when you use your card.

Just One Club Card (sleeve)

Now the next question is… will you confuse the clerk who asks for your club card? That’ll be the real test.

Here’s the results of the final product:

Just One Club Card (complete)

The other benefit of this of course, is that you will no longer have back pain from carrying a fat wallet in your pocket. You won’t need to go to a chiropractor because you sit lopsided on a thick wallet all day long, while you drive, in the office and so on.

I’ve already noticed a difference myself.

The 4 D’s of Inputs and Productivity

Tags:

In previous posts, I’ve talked about using David Allen’s GTD system of productivity. I was turned onto this about 3 years ago and have read and listened to everything I could about the system, including joining several mailing lists about using digital tools for GTD, analogue tools for GTD, and how to incorporate using my Palm device with GTD.

As with anything I want to learn, I research and absorb quite literally everything I can get my hands on.

The basic premise of David’s system is broken down into the following steps:

  1. Dump your head into a trusted system. This means dump EVERYTHING, literally empty your head of all of those nagging “chattering monkey” thoughts inside your head. The “Call the dentist” mental reminders to the “Work on the presentation for next month” to the “Retire in 25 years”. Get it out of your head onto anything you can trust to hold it.
  2. Process your inputs efficiently. This one item alone could take hundreds of pages for me to explain, but basically you want to be much more efficient about how you deal with the various inputs in your day; email, phone calls, in-person meetings… anything. I’ll touch on this in a moment, I’ve taken this step off on its own tangent in my hybrid system.
  3. Review everything on a regular basis. David prefers doing a weekly review, and that is the core of the system, a regular, structured, do-not-ever-skip-it review every Friday. This is very important, and I strongly urge everyone hoping to follow the system to adhere to this if nothing else.

Obviously there’s a lot more involved here, but let me show you how I personally go through some inputs using David’s system, and then how I have modified those with my own hybrid system.

First and foremost, dump everything on paper.

Do not sort.
Do not categorize.
Do not keep some things in your head and some on paper.
Dump it ALL on paper, from shopping lists to phone call reminders to everything at all in your head.

Did you just feel something? Look, your head is empty, you don’t need to constantly “remember” what you were supposed to get at the supermarket. Do you know why? Because it’s on paper! Refer to that, get your shopping done, and scratch that item out when complete. Move onto the next item.

There’s a tangent here about “contexts”, where David stresses moving things into @Office, @Computer, @Phone and so on. I personally don’t believe in contexts given the nature of my own work and lifestyle, but they do work for a majority of people.

Basically contexts boils down to sorting your list-of-things into genres that make sense for that context. So “pick up milk”, wouldn’t be in the @Office context, because you can’t pick up milk while in the office. Likewise, you can’t do “performance review paperwork” while in the car driving home from work, but you CAN do your @Phone calls from there.

In my case, I’ve morphed David’s system with one by Julie Morgenstern and my own personal needs. I’ll use email as one example:

I have 6 email accounts that I use on a regular basis. I am able to see and use 5 of these in one mail client, and the last one requires logging into the VPN at work and using Microsoft Outlook over an RDP connection. It’s not perfect, but I can’t change that.

When I receive an email, there are 3 possible things I can do with it:

  1. Read and delete.
  2. Read and respond/forward (delegate), then delete.
  3. Read and archive out of the Inbox.

That’s it. I don’t let anything linger in my Inbox, and I don’t clutter sub-folders with lots of mail I know I need to go back and re-read later. Also, unless it’s in the “Archive” folders, I NEVER touch an email more than once.

My Inbox at the end of every day, is ZERO. On very busy days, it is absolutely above the fold. I never want to have to ever see or use a scrollbar to read email in my Inbox.

Phone calls are handled similarly. If I am on the phone, I have a pad near me to take notes, as necessary. If I need to do some action based on the call such as “Set up a meeting with …” or “Call John about presentation …”, I put that into my calendar, or my PDA or my Globe-Weis filer (more on this in a moment).

Here is the secret sauce to my hybrid system: EVERY SINGLE INPUT I receive, is one of 4 things:

  1. Do
  2. Delegate
  3. Defer
  4. * Delete

The last one has a * because it isn’t always applicable to every situation, but it does apply to email and phone calls.

When I check my voicemail, I have that same pad with me… I either:

  1. Listen to the calls and delete them if they are unnecessary, or
  2. Write notes to capture information from the call. This information can include:
    1. Calling someone else or capturing a phone number for reference
    2. Other information (dates, times, meetings, and so on).

Then I delete the voicemail. Like emails, there is no reason to “archive” and listen to a voicemail more than once… (unless of course, it’s my daughter calling to wish me a good night sleep)

If something takes less than 2 minutes to do, I just do it, whether that’s replying to an email, returning a phone call or anything else.

When I’m sitting in the train station waiting for my next train to go out, I’m clearing my voicemail, returning any open calls that I need to make, and capturing notes to expand upon later when I’m either in my office, on my laptop or in a place that has the other tools I need to complete that task.

I see hundreds of people sitting there in the station drinking their coffee staring at the Departure board, waiting for their train. Those same people then board the train, take out their laptops and work until 7:30, 8pm at night on the train.

For these people, their job bleeds over into their personal life because they lack the tools and discipline to get things done much more efficiently, and use their time appropriately.

Two of the most-important tools I carry with me, besides my notepad and PDA, are two Globe-Weis expandable filers. One of these is an A-Z filer, which I use to file things like receipts, paperwork, bills and other information that I need to access later, but which has no date or deadline associated with it. That last caveat is important.

The second expandable filer is one that is numbered 1-31/Jan-Dec. This is a part of the system that 43 Folders is named for (1-31(31) + Jan-Dec(12) = 43).

I use this second filer for everything that HAS a date associated with it. For example, let’s say I get a reminder card in the postal email that my cat’s regular, yearly vet checkup is due, and to call the office to schedule an appointment. There is no specific date, but I know it’s due in a month or so. I’ll stick the reminder card in a weekday slot for that month, 2 weeks before the appointment time, along with a post-it note stuck to the reminder card to call the vet to schedule the appointment.

Every day when I start my work, I open the filer to THAT DAY’s number, pull out anything and everything that is in there, and process through it all one item at a time, until it is empty. I don’t start my day by jumping into my email Inbox and getting distracted there. Once my filer is empty for that day, I begin processing inputs for other items (email, voicemails and so on).

Anything I don’t finish THAT DAY gets put into the next day’s slot in the filer, and the work starts all over again.

On Friday, I’ll take whatever is in Friday’s slot, process as much as I can, and begin sorting the remaining items into the next week’s slots. I know that every day when I start my day, I open that filer to that day, and work through anything that is in there.

If I have something that is due in a month, I’ll put it in that numbered day in the filer.

If I know something is due in July, I’ll stick it in the July tab of the folder. When I begin each month, I take whatever might be in the tab labeled for the month, and sort it into the numbered tabs for each day.

These two tools alone, have exponentially jumped my productivity. I no longer have to “remember” who to call on Wednesday. I know that when Wednesday April 9th rolls around, I open the tab numbered ‘9’ in the filer, and there will be a post-it or note inside saying “Call John” with his telephone number attached.

The core of the “hybrid” system is to whittle down everything possible into the lowest common task, which can be done without any thought at that moment. All of the thought to complete that task was done previously, by you, to get it to that point. David Allen calls this “cranking widgets”. You want to break your projects and down into the smallest pieces, so all you do to complete your work is “crank widgets”.

There’s a lot more useful nuggets in using the “hybrid” system and I’ll continue to expand on this in future posts. Stay tuned!

Importing a decade of email into Google Gmail

Tags: , ,

I have over 10 years of email on my machine, which I refer to from time to time for various projects and historical reasons. Many of these emails are from very active mailing lists I’m still subscribed to. The total space consumed by all of these messages is currently 2.3 gigabytes, and it is stored in Maildir format.

I’ve been spending the last 2-3 years pushing myself to become more and more productive using a collection of various systems mostly based around David Allen’s GTD system. The whole premise behind David’s system is to “dump your head” into a trusted system, always filter every input through that system. There’s quite a lot more to it, but once you get the methodology down, it really, REALLY does improve how much you can do. Not only can you do more with less time, but you can do what you’re already doing now, and get a LOT more free time back in your day. No, seriously.

Click the image below for a full-size version:
GTD Workflow

My own “hybrid” system encompasses analogue and digital formats, because of my specific and unique needs for the kind of work I do. At the core of the hybrid system is my PDA; a Treo 680 smartphone. If you want to see why I use a Treo instead of an iPhone, read my previous post on the matter.

Still with me so far?

Read the rest of this entry »

Fixed suspend/resume with T61p and nVidia Quadro FX 570M

NVIDIA logoAfter spending a couple of weeks testing thousands of different options and configurations on my T61p to try to find out why it would not suspend/resume, I managed to come up with a working configuration.

The side-effect of this new configuration is that now X no longer randomly crashes on me in the middle of whatever I’m doing (a known issue with nvidia_drv.so) and now suspend and resume works with the nVidia Quadro FX 570M card in my T61p.

In order to stop X11 from crashing, I had to tell the nVidia driver to disable ‘fb, ‘glx’ and ‘dri’ in Section “Module” of my xorg.conf. That section looks like this:

        Section "Module"
            Load           "freetype"
            # snip other loaded modules

            Disable        "glx"
            Disable        "dri"
            Disable        "fb"
        EndSection

Lower down under Section “Device”, I have the following:

        Section "Device"
            Identifier     "Configured Video Device"
            Driver         "nvidia"
        #   Driver         "nv"
            Option         "NvAGP"       "4"

            Option         "MultiGPU" "AA"
            Option         "TripleBuffer" "true"

            BusID          "PCI:1:0:0"
        EndSection

The amount of configurable options for nVidia cards is staggering (77 separate Option params with various number of values and effects on the overall performance of the system). I tried nearly all of them with positive and negative effects. Then I started narrowing down the least amount of options that had a direct affect on my crashes and suspend/resume issue. That is represented in the above snippets.

I can no longer use my fancy glx screensavers, but I don’t care. I can now suspend and resume, and X doesn’t crash… (so far).

I’m using v169.12 of the x86_64 driver from nVidia directly, if anyone is interested in testing/duplicating my results.

(follow-ups to this may be found in the thread I started for this on the Linux Thinkpad Mailing List).

Open Source Advocacy on the Amtrak Train

Tags: , , ,

I take the Amtrak train into work 3-5 days a week from Norwich, CT to Manhattan. The ride is a 2.5 hour commute each way (137 miles each direction, 275 miles total). It gives me a lot of “focus time” to work on the train, and the schedule is relatively reliable. I don’t mind it at all. The cost is a bit prohibitive, but that’s all a wash in the “cost of doing business”.

I basically travel the entire length of the state of CT twice a day, almost every weekday.


View Larger Map

On the commute, I end up talking to dozens of people who are heading to various places along the East coast. Some are going to Richmond, VA… some are going to Boston, MA, and some are going to New York City as I am. There’s always someone interesting to have a side conversation with, and the Amtrak staff all knows me now from being on the train so often. I end up helping other passengers when the power is out in the cabin (GFCI is hidden at the end of the corridor) or when other things pop up, it’s really not boring at all… (except when the trains are 3 hours late, like they were Monday night. Arg!)

This week, I was in the cafe car working on the ride in, and a gentleman sat next to me with an old’ish Windows laptop, and was trying to copy some fonts from an external drive to his machine, overwriting the ones Windows was reading from C:\Windows\fonts. There were hundreds of them, and he had to confirm each overwrite from the GUI. He was tapping the Enter key for nearly 15 minutes straight until he decided to prop up his phone on the Enter key to hold it down for him, because he was tired of hitting it for each new font to be overwritten.

Being an uber-optimizer, I leaned over and told him that he could do it in a fraction of the time, if he did it from the shell. He didn’t even know what that was, so I walked him through how to open a Command Prompt, cd over to his external drive and copy all of the fonts from there to C:\Windows\fonts. It took about 4 seconds to do all of the fonts in one go.

He then explained that he had some sort of crash, and had to reinstall the operating system from scratch and that he didn’t have all of his programs installed yet. He specifically mentioned how he was behind on his deadlines, because he still couldn’t find and install his copy of Microsoft Office.

Since I always carry a cache of Open Source software for Windows with me in a directory in my code tree, I knew I had a fairly recent copy of OpenOffice.org for Windows in there. I explained to him what OpenOffice.org was, showed him how I was using it on my laptop at the time and said that I could get him a copy right then and there, on the train, so he could get back to working again. I had to answer all of his questions about compatibility and functionality, and he was sold.

OpenOffice.org Metro Edition

I also mentioned that Oo.org supported more file formats than Microsoft office, supported exporting to PDF (which requires an expensive application from Adobe to function within Microsoft Office), and that it also includes a handful of other things you’ll never get from Microsoft Office.

Oh, and it’s 100% free of any cost, of course (but donating to the project is good for the soul!).

I put it on a USB key I had with me, handed it over the aisle to him, he mounted it, copied the installer over, and installed it on his machine.

For the remainder of the ride as I continued to work on my projects, I glanced over and noticed he was not only doing what appeared to be “official work”, but he was also playing around in the features of Oo.org’s interface and applications. I saw him making a mock presentation in ooimpress, playing with the templates and slide layout and some other things.

It’s good to see how easy it is to convince someone of a better, faster, more-intuitive, secure way to function.. And all I was doing was taking the train into work.

Here’s how my “Manhattan Monday” went

Well, today was Monday, and it was fast sand furious. I slammed through my day job work on the train, in the office, and now on the train again. Overall the day was amazingly productive, and hopefully will be doubly-so tomorrow.

But here’s a quote that pretty much sums up a good portion of my day:

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.

Now they have two problems.

[ History of that quote can be found here ]

Take the headset OUT

Headset DorkThis is just a minor rant, but I think it bears mentioning.

There’s seems to be a new social behavior appearing in many circles now. I’ve been watching it increase in popularity and frequency for the last couple of years. I work in New York and my exposure to thousands of people every day greatly magnifies my awareness of this problem.

I’ve been using Bluetooth headsets for several years with my Palm PDAs and phones, as well as with my laptops and computers at the office (as audio devices, for Skype and so on).

I’ve probably had no less than a dozen separate headsets in the last 3-4 years. One of them was put through the wash by my wife at the time, another one was crushed, and the others are somewhere in my collection, replaced by faster, smaller, more-capable devices.

When I’m using the headset, I keep it in my ear. When I’m not on a call, I take it out. Herein lies the change in the social behavior of many people who use these headsets; they leave them in ALL THE TIME, whether they’re on a call or not.

My daughter is almost 4 years old and even she knows that when you’re not on the phone, you take the headset out. She sees me take it out when I’m off the phone, and she knows. I didn’t have to teach her. For her, it’s the signal that the call is over, and my attention can be directed towards her, listening to her, attending to her needs.

What are we teaching our youth here about being social and having people skills when we’re out in public? Nothing. We’re breeding more anti-social personalities and making our interactions with others “cold” and insensitive.

People who leave their bluetooth headsets in lack this signal. When you’re talking to someone, are they on a call? Are they listening to you? Are they playing music on their ipod over their bluetooth headset? Where is their attention?

You don’t know. You can’t tell.

You’re talking to someone face-to-face, and all you can see is that damn blinking blue LED on the side of their head drawing your eyes away from focusing on what you’re trying to say.

It’s rude, it’s distracting, it looks stupid, and it isn’t making our social interactions any more rich or fulfilling.

People wear them while they drive when they’re not on a call, and mostly on the driver’s side ear, so they can’t hear as well out that side of their vehicle.

What did we do before bluetooth headsets came around? Did we just strap the phone to our heads in anticipation of the next call?

Of course we didn’t!

It doesn’t make you look cool, important or special. Take the headset out, when you’re off the phone. Seriously.

Bad Behavior has blocked 719 access attempts in the last 7 days.