Create Backpack reminders via e-mail/SMS
It’s no secret that I’m a huge fan of Backpack. And though it’s great to store all my miscellaneous info and personal mini-projects in one central location, I’d forget to do anything without Backpack’s reminders feature. It’s simple and it works beautifully.
The one problem I have with Backpack reminders is that I almost never think of the things I need to be reminded about when I’m sitting at a computer. And, unfortunately, the browser on my phone just takes too long to load, or else I’d use Backpack’s mobile version more often. However, the GUI on my RAZR isn’t so crappy that I can’t dash of a quick SMS before I forget my critical reminder-worthy thought.
So, what I’ve done is whipped together a quick Rails app that gives me the ability to create Backpack reminders via e-mail or SMS. Here’s how it works:
- Realize that you haven’t called Aunt Betty in a while.
- Whip out your phone and type
call aunt betty sat aftinto a new text message. - Send the message to “remindme@someaddress.com”. This can be any e-mail account you have that supports POP3.
- Sometime later, the software I wrote picks up the message and sets a Backpack reminder for Saturday at 2pm with the text
call aunt betty. - Go about your business until Saturday afternoon, when your Backpack reminder fires off, and alerts you either by e-mail or SMS.
- Call Aunt Betty and stop feeling guilty.
You can use any e-mail program to send a reminder message to the “remindme” address, which is handy when you’re in front of a computer. The SMS example above relies on the feature most cell phones have in which a text message sent to an e-mail address magically “becomes” an e-mail.
I got the idea for this after experimenting with 30 Boxes, a new online calendar app. They have a nifty little feature they call the One Box that allows you to add appointments to your calendar just by typing in something like dinner fri 6:30pm. It figures out when Friday at 6:30pm actually is and creates your appointment.
In my version of this, you can enter the date and time in either order. Here are some other examples:
Call Dave(reminds you in three hours)Pick up dry cleaning 5pm wed(time comes before date…that’s OK)Make doctor's appt tom(reminds you tomorrow at 9am)Pick up dinner 5pm(reminds you today at 5pm)Send in taxes 4/15 9:30am(You do pay your taxes, right?)Report for active duty 9/1/07 15:00(Sept 1st of next year at 3pm)Post files soon(reminds you in 10 minutes)
Those of you that use Backpack reminders already will recognize morning and afternoon corresponding to 9am and 2pm, respectively. I also added the keyword of night (or nite or even nit) to translate to 6:45pm. Call Dave later will work the same as Call Dave, reminding you in three hours. I also added soon to remind me in 10 minutes because you’d be surprised how quickly something flies out of my brain. Finally, you can enter the input text into the subject line of the e-mail or the first line of the body itself.
How can I use this for myself?
Unfortunately, I can’t host this application for you, so you’ll need to download and run it yourself. But, on the plus side, you don’t have to pay for your own web hosting account either. All you really need is a computer that can run Ruby, and a way to kick off the script to run every once in a while.
Here’s what you’ll need to do, in no particular order.
- Obtain a POP3 accessible e-mail address you’ll use for this purpose.
- Download the Rails app itself (mobilereminder.zip, 76 KB). Go here if you don’t have Ruby on Rails already.
- Edit the file
lib/checker.rbto specify your e-mail configuration. - Edit the file
lib/reminder.rbto specify your Backpack account info. - Run the Checker every so often. I used
cronto execute the following command every five minutes:
/usr/local/bin/ruby mobilereminder/script/runner ‘Checker.run’
If you actually want to set this up but are having trouble, drop me a line and I’ll try to give you a hand.
How does this work?
Essentially, I set up a cron job that kicks off the process every five minutes and POPs off all the messages. It parses each one, sets a reminder if there’s a future date, and deletes the messages. It’s pretty solid, overall…I only got one error from the cron daemon about an issue accessing the POP mailbox that didn’t resurface.
The parsing was not that hard, really, because Ruby’s such a cool language and has so many great features baked right in. This definitely would have been a bigger pain to write in Java, severely reducing the fun factor. Also, I’ll note that this took me about a week of nights and weekends to put together, and I’m not a Ruby expert. Now that I think about it, that’s probably something worth repeating: I’m not a Ruby expert or a master, wizard-level coder. If you download the code and laugh at it, that’s OK. At the same time, if you have a suggestion for improvement or want to help me out, by all means let’s chat.
Speaking of master coders, I need to give credit where credit is due and point out that this was possible to put together because the good people at 37signals have released a really nice API for Backpack. But, more than possible I’d say it was easy to put together because they went one step further and created a sweet Ruby wrapper that made the Backpack calls drop-dead simple. The only way they could have been better is to add this feature into the official Backpack product and render my silly hackery irrelevant. (Hint hint!)
There’s one gotcha to this whole thing: since there’s no way to determine which time zone your Backpack is in through the API, I had to hard code some stuff in there to offset for Central time because my web host is on Eastern time. If you run this app from within the same time zone as your Backpack, you can delete the offset stuff from the code.
So, what’s next?
Well, I mentioned at the beginning that I got the idea for this by using 30 Boxes…my next app gave me a way to display my Backpack reminders on my 30 Boxes calendar. Check it out if you’re interested.
Comments
Which kind of woman do you want to be?
Do u have these ten secret weapons?
IT bag: yves saint laurent,christian louboutin for spring,louis vuitton handbags for Summer,loewe handbags for autumn,Coach handbags or other replica handbags for Winter.
You have to wear the christian louboutin when you go to parties.When you are on a journey,you should wear a pair of jimmy choo shoes.Nike is very nessisary when you donging sports.You should buy the ugg boots(UGG Classic Short or UGG Classic Tall) for your watery foots.
gucci bags on sale gucci handbags on sale fendi zucca bag fendi wallets fendi spy replica spring coach bags dolce & gabbana handbags dg handbags dolce handbag hermes handbag discount designer handbags hermes kelly handbag replica chloe handbags loewe handbag miu miu leather bag jimmy choo handbags lancel handbag discount burberry handbags burberry handbag marc jacobs handbags sale marc jacobs stam bag marc jacobs quilted bag handbags by marc jacobs marc jacobs hobo marc jacobs satchel thomas wylde bag thomas bag mulberry handbags valentino purse valentino bag versace purses versace handbag cartier bag cartier wallets givenchy bag handbag luxury bottega veneta handbags bottega handbags dior gaucho handbags christian dior handbag christian handbags balenciaga handbags balenciaga motorcycle bag christian dior handbags louis vuitton wallets louis vuitton purses louis vuitton monogram louis vuitton multicolor louis vuitton monogram canvas louis vuitton alma louis vuitton vernis ysl handbags cheap Ugg BootsReplica Watches replica ugg bootschristian louboutin shoes Women Jeans