How I reclaimed my Gmail inbox

I wonder how many of us remember e-mail, as it existed before Gmail. In its heydays, Yahoo Mail had a 6MB limit (!) which it later upgraded to 100MB (!!). Then along came Gmail, with its 1GB inbox, and changed the nature of e-mail forever. I was one of the early adopters of Gmail in June 2004 (when it used to be invite-only, and invites were really hard to come by), having received an invitation via my boss, who had in turn received it from a friend who was also the editor of a large computer magazine.

Gmail taught us to forget about deleting messages, and introduced the concept of archiving them instead. Of course, this was so that they could collect enough information about us to enable them to serve personalised adverts, and create a captive audience for their AdWords ads. Over the years, Gmail kept on increasing the size of our inbox, and it now stands at around 7.5GB. But for some of us, the size hasn’t kept pace with our heavy usage.

A Full Inbox
Woe, my inbox overfloweth.

I have multiple e-mail accounts from different websites, services and roles, and I like to feed them all into one Gmail inbox which I check daily. Due to a combination of laziness, bad practices and the sheer volume of e-mail I get, my inbox has always had a huge number of unread messages in it. In fact, this week I had 32,517 unread messages. And this was only in my main folder/label. My inbox was almost full (93%), and I didn’t know what I’d do if it reached 100% – I just can’t imagine losing* this e-mail account!

It was clear that things had gone out of hand, and so I decided that it was time to reclaim my Gmail inbox.

I needed to delete a whole bunch of messages, in a semi-automated way (not one-by-one) but still ensuring that I don’t lose anything important. I started out by analyzing the e-mail in my inbox, and used Gmail’s advanced search features to identify messages that could be safely deleted.

Here are a few tips:

1) First, the low hanging fruit. Personal messages to people who are no longer in my life could be deleted mostly without thought. These messages frequently contain attachments (of the literal sort) which take up more space than usual mail.
Gmail Advanced Search Term: from:nolongerfriends@gmail.com OR to:nolongerfriends@gmail.com

2) Spam v/s Bacn. Bacn is the term for messages that are not entirely spam, but almost there. These could be low-priority newsletters that you have opted-in to, messages from EBay containing discount codes, etc. Basically things that you want to know arrived in your inbox, but which you won’t care about after a few days. My previous method was to ignore these e-mails and keep them unread, but they both cluttered my inbox, as well as took up space.

My new method is to create a filter in gmail, and a new label termed ‘Delete Intermittently’.

Gmail Advanced Search Term for the filter:

from:(primermagazine.com OR highstreetphoenix.com OR mailer.sharekhan.com OR britishcouncil.org OR mylaw.net OR isb.edu OR updates.000domains.com OR info.snapfish.com OR email.thinkgeek.com OR no-reply-aws@amazon.com OR stackoverflow.com OR whereareyounow.com OR procam.in OR donotreply@pagalguy.com OR iciciprulifecares.com OR stumbleupon.com OR appsumo.com OR info.flykingfisher.com OR cpbnc.com OR livewire18.in OR buddhisttrains@irctc.co.in OR flightoffers@irctc.co.in OR railtourismoffers@irctc.co.in OR irctcpromotions@irctc.co.in OR tech2.com OR railtourismindia@irctc.co.in OR hoteloffers@irctc.co.in OR no-reply@infibeam.com OR dm.jetairways.com OR moneycontrol.com OR roadtosuccess@ebay.com OR slashdot.org OR netted.net OR snapdeal.in OR equitymaster.com OR greenpeace.org) -password

Going through my inbox, I deleted unwanted e-mail manually for a few pages, at the same time adding the senders’ domains to my filter. Once operational, the filter does not delete these e-mails; it does not even make them skip the inbox. It just tags them as to be deleted, providing me with an easy way to delete the whole lot manually every now and then.

Note the exclusion of any e-mail with the term ‘password’ in it – this is in order to avoid deleting saved passwords or password reset e-mail.

3) Social Networking Clutter. Twitter, Facebook, forums. Everyone wants to send you notifications. Reading all these notifications as they appear is a surefire way to kill productivity. I created another filter to tag all social networking e-mail and make them skip the inbox. This label can then be emptied periodically.
Gmail Advanced Search Term for filter:

Matches: from:(facebookmail.com OR twitter.com OR orkut.com)
Do this: Skip Inbox, Apply label "Social Web"

4) Large files in old messages. Textual e-mail really doesn’t take up a lot of space, but media and zipped files can. Finding and deleting old attachments and forwarded messages can clear up space in your inbox really quickly. You can use a combination of file extensions to find these messages for deletion.

Gmail Advanced Search Terms:

has:attachment filename:mp3 OR filename:mpg OR filename:avi
has:attachment filename:zip OR filename:rar OR filename:tar.gz OR filename:7z

5) Single out the worst offenders. In accordance with the Pareto principle, 20% of the most prolific e-mail forwarders will contribute to 80% of your inbox clutter. These people might deserve special attention. I’m focussing on e-mail with attachments here, but you might just prefer to entirely delete all old mail from them.

Gmail Advanced Search Term:

subject:Fwd from:ProlificForwarder@email.com has:attachment

6) Just really old messages. Perhaps you’d just like to delete all old messages before 2008 that have attachments and take up space? Use this with caution.

Gmail Advanced Search Term: has:attachment before:2008/12/01

7) Make important stuff easily accessible. Receipts, Bank statements and the like should be put out of the way, but in a browsable place. This is not strictly necessary.

Gmail Advanced Search Term for filter:

Matches: order receipt
Do this: Apply label "Receipts", Never send it to Spam

8 ) Bonus tip: Notes to self. I sometimes write e-mail to myself as a convenient way to store text or information. Here’s a filter to automatically label and deal with such mail.

Gmail Advanced Search Term for filter:
Matches: from:(myemail@gmail.com OR myemail@mydomain.in) to:(myemail@gmail.com OR myemail@mydomain.in)
Do this: Skip Inbox, Mark as read, Apply label "Notes to Self", Never send it to Spam

9) Quick links. I also added some optimizations and quick links that were specific to my usage of Gmail. A good trick for quicklinks is to use the URL from advanced search options. You can do this with any label; for example: https://mail.google.com/mail/#advanced-search/subset=sent&within=1w&date=today

After automatically tagging bacn, deleting the automatically tagged mail and deleting old and large attachments, I managed to pare down my inbox to 48% full. So while I haven’t perhaps managed to entirely ‘take my inbox back’, at least I’ve given it a new lease of life.

Do you have any additional tips? Share them in the comments below.

* To put this into perspective, I had already retreated from one main e-mail account on Yahoo Mail in 2005, because of the immense amount of spam it received. Losing an e-mail address can be pretty painful when it is your primary one.

Naked into the Urban Jungle

Ah, but a man's reach should exceed his grasp.

Veni, Vidi, Vici. So many tycoons claim to have arrived in a city “with nothing but fifteen cents in my pocket” and, having done that, promptly proceeded to transfer wealth from the pockets of the citizens into their own. Today, on a sunny Mumbai Sunday, I’m participating in an interesting experiment along with two other people to test how we will fare in a similar situation.

Our challenge today is to step out into the city with just our wits and Rs. 30 ($0.65) between the three of us, and parlay our meagre capital into as much money as we can within two hours.

The rules are simple: without our wallets and purses, lacking any meaningful cash for food, water or emergencies, without any identification to prove who we are, without our watches and jewellery, without our mobile phones and having forsaken the help of any friends and family for the duration, we will be venturing truly naked into the urban jungle.

With me on the experiment are two smart women; AM, a dynamic 32 year old placement executive at a Mumbai B-school, and Sanidya Shetty, a lissome 18 year old commerce student. We set out in the Vile Parle area at 12:00 noon without much ado or preparation, empty handed except for our seed fund of Rs. 30.

Firstly, we need a cause to motivate us. We begin by asking ourselves what will we do with the money after we’re done. After a few minutes of discussion, we decide to utilize any money we raise to feed street urchins. Now that we’ve adopted a cause, it becomes really simple to figure out what we will do – we’ll just ask people for the money!

Now it’s time for some strategy. We decide to start with targeting crowded places, and places with an overall younger (and so less cynical) population, and wing it from there on.

Cause? Check. Strategy? Check. Now it’s time to go raise some funds!

We start by pouncing on the nearest people we can see, who happen to be a squad of marching cadets training to be in uniform. An impassioned appeal by the feisty AM to their commander hits home almost immediately, and he allows the marching cadets to break formation and get us any cash they’d like to donate.

My notepad becomes a subliminal symbol of authority.

This lucky stroke nets us our first cash, but we quickly realise we need more than luck. We need an authenticity boost if we’re to convince people that we’re not just hucksters looking to make a quick buck. What we need, apart from oodles of confidence, is a prop. We ‘invest’ half of our capital into a notebook and pen, so one of us can stand around taking down donors’ names and looking all official, while the other two pull off their confidence trick pitch.

We don’t have any receipts to give people, nor do we have any ID. So we decide to present ourselves as a bunch of students who’ve decided to do a good deed on the weekend. Like all lies, the imaginary backstory builds up around itself gradually, and soon we have a waterproof tale to tell while soliciting funds.

We quickly learn that it is pointless to ask shop owners for donations, they’re too jaded for that. Not even Udipi hotel owners part with their cash, despite Sanidya’s shy attempts at a pitch in her native Tulu. Students are more receptive to our pitches, and middle aged and older women even more so. There are a few poignant moments, like the young student returning from college who says she really would like to contribute to our kitty, but all she has is the six rupees for her bus fare.

It is quickly apparent that it is pointless to solicit from students, who have their hearts in the right places but not much disposable cash in their pockets. We don’t want to spend time collecting Rs. 10 per person in the trenches, when we could be collecting 100 bucks each from the right sorts. Our quest for juicier marks takes us into the noisy crowded marketplace, bustling with activity. And women who are willing to contribute to our noble cause.

Descent or ascent, sometimes the difference can be just a point of view.

Our running tally grows by leaps in the marketplace, but our story about wanting to feed street urchins gets us into trouble when a few hard-nosed ladies decide to contribute in kind, rather than cash. We’re loathe to refuse from a fear of appearing blatantly insincere, and we end up with two huge bagfuls of bananas and peaches. Which SS and I then have to lug around for the next hour.

We move towards the station, expecting more rich pickings, but people here are in a hurry to catch their trains and we don’t manage to pitch to many. We move back into the interior lanes of suburbia, where the marks are fewer but the pickings richer.

Our purse has been growing steadily, and AM’s pants soon threaten to fall off with the additional cash stuffed into the pockets. The maximum amount we get is Rs. 200, from a 30-ish anonymous well dressed male. Women give more than men, middle aged people are the most cynical, and while poorer people are more willing to give, it evens up because richer people give more.

Soon, it’s almost two o’clock, and we decide to call it quits. The total we’ve raised today is Rs. 2156 (and some bananas and peaches). While not a fundraising miracle, we’re happy in the context of our original goal.

If we were a scam, we’d have a whopping 7187% return on our original Rs. 30 in the span of two hours. Actually, we’ve ‘invested’ only Rs. 15 of our ‘capital’, so the ‘returns’ are more to the order of 14,373%. Not bad for a couple hours’ work.

This has been an interesting experience, so let me try and list the lessons learnt.

  1. God helps those who help themselves, but people help those who help others.
  2. It is simpler to act when you have a cause you believe in.
  3. All you really need to take money from people is a lot of confidence.

We end up sharing a bit of the fruit among ourselves, and donate the rest, along with the cash raised. Anything for a good cause, I say.

Having iCal speak out scheduled calendar events

I’ve been looking at having iCal (the calendar app on Mac OS X) to help me inject some order into my schedule.  In life, at the very least, you need to have a basic “to do” list, a schedule, and a budget. iCal takes care of two out of those three. Not bad for a start.

While it’s a simple matter of entering in items into my schedule, what’s a realistic way to enforce adherence to that schedule? On the face of it, it seems simple – just keep on referring to your calendar every now and then. But I believe a ‘push’ model would work better than a ‘pull’ model here; it would be awesome to have your calendar tell you what to do when it needs to get done!

iCal has e-mail options which enables it to e-mail you about upcoming events and scheduled items, but it does not take advantage of text-to-speech for some reason. So here’s a little Applescript to add that functionality. Calling this script on the event will read out (in the default MacOS ‘Alex’ voice) your event, in this format:

Attention! It’s 10 o’clock. Time to Sell Nesco shares.

This is assuming my event was ‘Sell Nesco shares‘, and scheduled at ten.
(Statutory disclaimer: This is not stock advice, and the author has interest in Nesco shares)

Without further ado, here’s the code:

set Now to current date
set Earlier to (current date) - (0.1 * hours)
set Later to (current date) + (0.1 * hours)

tell application "iCal"
 set AllCalendars to every calendar
 repeat with EachCalendar in AllCalendars
 set CalendarName to name of EachCalendar
 tell calendar CalendarName
 -- just change the above line if you want to 'say' events from one calendar only
 repeat with thisEvent in (every event whose start date is greater than Earlier and start date is less than Later)
 -- or (start date is MidnightToday and allday event is true))             

 --say ""
 -- say CalendarName
 if contents of thisEvent is not missing value then
 set TheEvent to contents of thisEvent
 set EventProperties to properties of thisEvent
 set EventName to summary of EventProperties
 set EventLocation to location of EventProperties
 set EventDescription to description of EventProperties
 set EventStartDate to start date of EventProperties
 --say (time string of (current date))
 set {hours:hr, minutes:mn, seconds:sc} to current date
 set SpokenTime to "Attention! It's "
 set SpokenTime to SpokenTime & hr & ":" & mn
 say SpokenTime
 -- say mn
 set SpokenEvent to "Time to "
 set SpokenEvent to SpokenEvent & EventName
 say SpokenEvent
 end if
 end repeat
 end tell
 end repeat
end tell

To use this script, open up Script Editor from  Applications/Applescript. Paste the script in and save it to a good location. Apple recommends /home/library/scripts, I believe.

While adding or editing the event you want to be spoken out, you can now choose Run Script as your alarm, and point to the script you just saved. here you can see my own screenshot, where I’ve saved the script as iCal_SpeakEvents.

Editing iCal Events and using a custom script
Editing iCal Events and using a custom script

Suggest modifications in the comments below!