Downloading bank statements

Fujitsu Scansnap printer

As I've mentioned in previous posts I've really been trying adopt a paperless lifestyle. My Fujitsu Scansnap scanner and software like Hazel are sure making that easier.

I feel I've become very efficient at dealing with the paper that comes into my house, and whenever I get an email receipt I print to PDF and file it away. 

Many of my financial institutions have asked my if I want to be paperless. I've always said yes and, when I select that option, the stop sending me paper statements. I feel good about saving the trees, but there is a downfall: I don't have copies of these statements for myself. Sure, they're available online, but I've found I'm too lazy to undergo this process:

  1. Go to my bank's Web site
  2. Type in my username and password
  3. Navigate to the "documents" page
  4. Download the statement
  5. Repeat steps 1-4 for every IRA, student loan, college savings plan, mortgage, and car loan

In the end, just the process of logging in to all these sites was a chore, and I was finding myself wishing they just came in the mail so I could stick them in the scanner and be done with it.

I wanted to find some way to automate this process, at least simplify the whole ordeal of logging into 6-7 websites. I thought this might be a good job for Keyboard Maestro

keyboard maestro icon

Keyboard Maestro is something I'd been aware of for quite a while, but I never had a good understanding of what it actually did. In my limited understanding it was a way to create keyboard shortcuts. While I like keyboard shortcuts, I have a really tough time remembering most of them and the idea of adding more didn't sound very appealing. 

What I didn't understand is that Keyboard Maestro is a tool to create macros. Typing, clicking, opening programs and files, appending text, etc etc. You can string together multiple combinations of these things makes it a very powerful tool to automate repetitive tasks.

1Password logo

Of course, it wouldn't be a good idea to display all of my passwords to my financial institutions in a program like Keyboard Maestro, so I thought it would be helpful to add 1Password to the recipe. I've mentioned 1Password before, but, if you're not familiar with it, this is a great utility for managing your passwords. It allows you to use secure passwords (such as yas^hjr$@ds7) and access them with a master password. 

Alfred icon

The last ingredient is Alfred. Alfred is a program launcher and so much more. I feel an app like this, or something comparable (like Launchbar or Quicksilver), is indispensable. 

The cool thing is, Alfred and 1Password work very well together. If you're logged into 1Password you can do things like this:

  1. Click the keyboard shortcut to open Alfred - in my case, command-space
  2. Start typing the name of a website, eg) wellsfargo
  3. Select the search result for 1Password: Wells Fargo - the one you want is usually the first result and you simply have to hit enter to select it.
  4. Sit back while Alfred and 1Password open your browser window, navigate to the website, enter your username and password, and log into the site.

So, putting these things together, I created a Keyboard Maestro workflow that looks like this:

To initiate it, I first make sure I'm logged into 1Password and then I like to open a clean browser window. Then I press the trigger hot key I assigned to this macro, control-option-command-B (B is for bank).

Keyboard Maestro starts with the first step, which is typing the control-space keys. This is my keyboard trigger to open up Alfred. On step two the text "wellsfargo" is pasted into Alfred. It is assumed that the top result will be the 1Password "open up and log into wellsfargo.com" action, so the macro will press the enter key to select it. Then, as described above, 1Password will log me into the wellsfargo.com. 

This may seem like a lot of work to log into a website, but the fact that it scales well becomes very helpful. By simply copy-and-pasting these four steps 6-7 times I can change the text in step two to all of my other financial institutions: "wells fargo dealership services", "prudential.com", "ING Direct", "student loan servicing center", etc., etc,.

I created a little pause in step 4 to give give Alfred / 1Password time to log in. The macro doesn't wait for a page to load before moving on to the next step, so I wanted to make sure it had time to load the site, enter login credentials, and hit "submit" before proceeding.

So, now I set up a monthly reminder to download my bank statements. When it pops up, I log into 1Password and hit my keyboard trigger, then sit back and watch while I'm logged into six or seven websites. When It's done I click each tab, manually download my statement, and let hazel sort them into their appropriate folders by kind and date.

Is it perfect? No, sometimes a page doesn't load fast enough and I don't get logged in. However, in this case, all I need to do is click the 1Password extension in my browser and it logs me in.

Could this be better? Maybe. I originally created a much more involved macro that was customized for each site. It would search the page for the text, right-click it, choose "save as", navigate the finder to the appropriate folder, etc. It required a lot of precision and it also required the sites to not change their layouts. It was kind of like tumbling dominoes: Everything had to be perfect, and if one thing went wrong everything from that point onward wouldn't work. 

Some might still argue that this is too much work for what you get out of it. However, it's keeping me from putting off the task of downloading bank statements like it used to. Plus, it's nerdy, which is always a good thing.

Using Hazel to keep things tidy

In my last post I wrote about how an extremely bloated PHP log file was taking up more than it's fair share of my hard drive. I found it and deleted it, but what's to keep it from happening again? If I were ambitious I could find all the code that's writing to that file and delete it. However, I do sometimes refer to these error messages while debugging my code, and I'd rather not eliminate this information. However, when I do read this log file I'm usually looking at the most recent entries. I don't need a 6 month old records of my mistakes.

I decided to use one of my favorite utilities, Hazel. Again, from their home page:

Create rules to automatically keep your files organized. Hazel watches whatever folders you tell it to, automatically organizing your files according to the rules you create.

I usually use Hazel to help automate a paperless workflow, mostly following the rules outlined in David Spark's Paperless book. I think I could write a book about ways to use Hazel (there's so many possibilities!) , but today I'll just show you how I addressed the problem of the swollen log files:

Hazel rule - click for larger image

In other words, I told Hazel to watch the directory with the log files. If any file gets larger than 1GB, move it into the trash. Easy-peasy.

Now I can make as many coding errors as I like without worrying about this file growing to occupy 1/5 of my hard drive.

Tidying up a hard drive with DaisyDisk

Even though my Macbook Pro is getting a little long in the tooth, I was surprised at how much it was starting to slow down. I won't be using this computer for much longer and didn't want to invest in any hardware, so I've already ruled out increasing the RAM or the hard drive beyond the 4GB/500GB I'd upgraded to a few years back.

Beyond hardware upgrades and assuming you're not part of a botnet, one of the best things you do to improve your computer's performance is to free up some hard drive space. While investigating this I was surprised to see that the majority of my hard drive was full - I don't keep my music and movies on my hard drive and I thought I had at least 100GB free, but it turned out I had much less.

I decided I needed to clear up some space and went looking for unneeded files, preferably big ones.  I could have started browsing through my file system, diving into directories seeking items to purge.  However, I thought this would be a good time to fire up DaisyDisk. From their home page:

DaisyDisk scans your disks and presents their content as interactive maps where you can easily spot unusually large files and remove them to get more free space. The map gives you an overview of your data, so you always know what your hard disks are filled with.

And that's exactly what DaisyDisk did. When I launched the app I almost immediately found a curiously huge file.

An 87 GB PHP log file. What's a PHP log file? Well, when I work on my Web site on my local machine, every time I make a programming error it records the error message in a text file. I make a lot of mistakes. In fact, I probably do 100 things wrong for every one I do right (It's a good thing I'm not writing software for the space shuttle).

Anyway, deleting this and a few movies I hadn't realized were still on my hard drive freed up nearly 100GB of space. Wahoo!

DaisyDisk screenshot - Click for larger image

More on Waze

Waze logo

I wrote about how I was enjoying the Waze GPS app a couple weeks ago.  Now that I've been using it nearly every day since then I've noticed a new feature - it learns your patterns.  There's been a few times where I've jumped in the car in the morning and Waze popped up a message saying "are you going to day care?".  Why yes, I am!  And then, after picking my kids up after work, it asked "are you going home?".  Yes again!

GPS apps: Twist & Waze

I've tried a few GPS apps on my iPhone, but I've always come away a little disappointed.  They're always a little more cumbersome to use than my dedicated Garmin GPS, slower to give me directions, and more likely to lose the GPS signal.  Furthermore, I use my iPhone to listen to podcasts and I get annoyed that the GPS app lady talks over what I'm listening to.  Furthermore, I sometimes have to switch apps to change to a new podcast, something I don't want to do when I'm driving.  Lastly, using the GPS is murder on your phone's battery.

The phone GPS apps do have a few advantages.  They're always up-to-date and  do a better job finding new restaurants, new roads, etc.  The user interface is usually better so it's easier to enter addresses or, even better, choose an address from amongst my contacts.  Also, there are ways I can send addresses from my computer to my phone so I don't even have to type anything. However, in my experience, the apps just didn't offer enough additional features to make me abandon my dedicated GPS.

Waze icon

However, a couple new apps have grabbed my attention.  One of them is Waze.  On the surface Waze works like most other GPS app: You search for or enter a location and it shows you a map and gives you visual and spoken directions.  What makes this app interesting s the fact that it uses data from all the other Waze users on the road.  It measures the speed of other cars on your route.  Even better, it allows users to report issues such as heavy traffic, accidents, and even police  (I think the spirit of this feature is to report police cars at accidents or pulled over vehicles but I'm sure people report speed traps too).  

I'd heard about Waze on a number of blogs and podcasts, although I was a little skeptical about how it would work for me.  After all, most the people I read and listent to are in large, tech savvy cities like San Francisco.   Was there going to be enough users in Madison WI to get the advantages of crowdsourcing?  I'm please to say that every time I fire it up it reports at least 45 people in the area using Waze.  That's proven to be very adequate: It's done a very good job of driving conditions on my commute to work.  And, when I encounter something unreported, I've made an effort to contribute to the cause and be the reporter (It's worth mentioning that Waze does a good job making this hands-free).

Here's a few screenshots.  I'd wish I'd gotten one of the alert telling me a stopped train was blocking my drive downtown...

The other app I've been liking is Twist.  It's not really a traditional GPS app.  It does give you an ETA and shows you a map of where you're going, but not in a way that's going to make you choose it over another app or a dedicated GPS.  No, the real purpose of Twist is to let other people know when you're going to arrive.  

Twist icon

Consider this : We take my kids to visit grandma and grandpa pretty often.  They only live 45 minutes away, so we make plans to get together on a lot of weekends.  We never set a real concrete time that we're coming over, and our time of departure is unpredictable due to the fact that two and four year olds lack punctuality.  Still, we'd like to give my parents a sense of when we'll arrive.  

That's where Twist comes in.  To "make a new Twist", you simply enter your destination (mom's house) and who you want to notify (mom).  Then, when you leave your house the GPS senses you're on the move and sends mom a text message, something like "Todd just left.  His ETA is 10:45 AM".   When you get close to your destination it sends another text message saying "Todd is about to arrive".  If you stop to get the kids some french fries en route and it takes too long another text message will be sent alerting mom of the delay.

Twist seems works best for trips that:

  1. You make on a regular basis
  2. Someone is waiting for you at your destination

I made one like the above example, and I made one for the days where my wife gets home before me..   That way, when I leave work and pick up the kids from daycare, I can let her know I'm on the way home and when I'll arrive.  That way I know I'll have a hot gourmet meal just waiting for me when I arrive [insert wife's laugh here].

A Second Display for $2.99

When my my workday is over and my kids go to bed I try to get a little exercise and then sit down at the kitchen table and start working on my laptop. Most of the time I'm either entering data or programming. Both of these tasks are cumbersome because I need to use a lot of different applications simultaneously. For example, while entering data I usually toggle between:

  • A browser window open to www.eyedock.com
  • A browser tab open to EyeDock's mySQL database admin page
  • A browser tab or a PDF reader open to the data that I'm referring to 
  • An FTP client
  • An image editor
  • A file manager

When programming I'm usually using:

  • Whichever app I'm using to write my code (Flash, Xcode, or Textmate)
  • An image editor 
  • A browser to Google solutions to all the problems I run into
  • The programming language documentation
  • And, sometimes, another program to build my user interface (Interface builder)

I spend WAY too much time switching between tabs and windows. In addition, all the typing is starting to cause me some wrist and hand pain: I think the biggest problem is all the awkward motions on the laptop track pad trying to open, close, and shift windows, files, and palettes around.

DisplayPad iconI've started thinking I'd be much better off with a large second monitor. The problem is I don't really have an office area in my house. I do 95% of my work on the kitchen table, and about 5% in coffee shops. We're trying to buy a bigger house, so maybe I will have an office area at some point, but right now the priority is to give the kids their own rooms. And it's hard to justify buying a large second monitor when there's the uncertainty of how much we'll be spending on our mortgage in the near future.

I came across a very workable alternative after reading a blog post about an iPad app called DisplayPad. This app lets you use your iPad as an external monitor. All you have to do is download the app onto your iPad and put a free program on your Mac (downloaded from their website). In your Mac's System Preferences -> Displays you can tell the computer where the iPad is positioned in relation to you computer so you can easily move your cursor between them.System Preferences - > Displays

It may not seem like a 9.7" iPad screen would make that much difference, but it does. It actually increases my usable desktop area by about 50% (with a 15" MacBook Pro), which is significant.

It's not a perfect solution, though. The resolution isn't quite as sharp as my laptop monitor, and dragging windows or images around isn't very smooth. However, when I reserve my primary tasks for the main computer and delegate the iPad screen as a place to hold more static documents it works in a very satisfactory way.

I spent a big chunk of the day yesterday with my dual monitor system, and I found my workflow to be much smoother and efficient. Plus I only had to spend $2.99, and my second display is small enough that I could even take it with me to a coffee shop or on a trip if I needed to. It's a cheap solution . . . if you happen to have an iPad.

Dual displays in action

iPhone App: Handoff

I came across an iPhone app last week that I've grown to like quite a bit.  It's called Handoff.

Let me set the stage for you:

You quickly look up a recipe on your computer and decide you need to run to the store to get the sesame oil, quinoa, chicken gizzards, and all the other ingredients to make your exotic five star meal.  

HandoffOr, you come across an interesting article right at bedtime. You really want to read about the epidemic of recent salamander attacks but just don't want to do it at the kitchen table at 11:30 at night.

Or, you call up a Google map with directions to the house of the local weather person.  You decide now is the time to head over to their place, peek in their windows, and perhaps let them know that you did receive the secret love message that they sent over the newscast.

Sure, in all these cases you could do the search again in mobile safari on your iPhone or iPad.  Or you could email yourself some of the information.  

Or, you could use Handoff! [pause for applause]

To use Handoff you need to download the Handoff app onto your iPhone and/or iPad and then add a handoff extension to your Chrome or Safari browser (or a bookmarklet, if you're using Firefox or IE).  These can be found at the Handoff homepage.  Then, when you come across something interesting on your home computer you simply press a button in your browser and you get an instant notification on your iOS device that that Handoff has received the item.

If you've sent a web page it will open up that web page.  If you sent a map it'll open the map.  If you had highlighted any text it'll send that snippet to your phone.  If that text was a phone number you'll be able to tap it and make a call.

In summary, it's a very simple utility.  However, any time I can avoid writing something down, searching for something more than once, or just accomplish a ask in less steps, well, it makes me happy.