America First Credit Union Rocks!
I was listening to the Dave Ramsey Show podcast yesterday when Dave went off on Bank of America and large banks in general. He then praised his small community bank. That got me thinking about my bank – America First Credit Union. I’ve been with them for nearly 10 years now. I thought I would take some time to share some past experiences as to why I love them so. This is totally unsolicited. I’m not getting paid to promote AFCU. I just wanted to give them praise where praise is due.
History & Past Experiences
My first checking account was with First Security Bank. I chose them simply because their office was the closest to where I worked. They were OK I guess. Just a bank to me. Then, the office were I worked was moved across town. Still it wasn’t too bad because I also moved apartments and had a branch within a mile of my apartment. Then, a few events occurred then that caused me to switch banks:
- I got married
- First Security Bank was bought out by Wells Fargo
- We moved
There was a discussion at work and someone brought up the fact that he recently switched banks to America First Credit Union and really loved their service and online banking. It was totally unsolicited and out of the blue. After hearing the recommendation for AFCU, I was really curious about their online banking because I hated First Security’s lame attempt at it and the transition to Wells Fargo didn’t seem to be going smoothly. I had seen AFCU branches around. Since moving there was actually an AFCU branch in the supermarket closest to us, so we switched.
They guy at work was right. AFCU’s web interface was so much better and cleaner. They even had free online bill pay, which Wells Fargo was charging for at the time I believe.
I just wanted to share a few experiences that has kept AFCU on my awesome list over the years.
Before I ever heard about Dave Ramsey, I had car payments. I wanted 5 speed Nissan Maxima so bad and when I finally found one I had stupid written all over my forehead. I bought that car for $18K and got a 8% loan from Wells Fargo (through the Nissan Dealership). As rates started to drop I decided to refinance it through AFCU. I think I got the rate down to the 5% area and saved quite a bit on the payments. Plus, after than, making payments was as easy as transferring the money in my online banking – and it really was easy. The 9/11 event occurred shortly after that and auto loan rates continued to fall. Each time they did, I would send a message to AFCU via the online banking portal and ask if I could lower my rate. They would mail a paper for me to sign, and I would send it back. No fees. Super simple! What other bank does that?! I had that car loan down to 3.9%! (or was it 2.9%… I can’t remember) I was so pleased with their car loan process that I bought 2 other cars by getting loans through AFCU. The process was always quick and painless. (I now feel obligated to say that I don’t have car payments because I have seen the debt free light)
When we moved to our second home we didn’t have any AFCU branches near us. In our previous area we had 4 branches all within a 5 minute drive. Shortly after moving, a popular Wal-Mart was being torn down and rebuilt into a Super Wal-Mart. I sent an email to AFCU and suggested that it would be really great if they could manage to get a branch in that Wal-Mart because they really didn’t have much of a presence in that area. I got a reply letting me know that the email had been forwarded to the powers that be and they would see what they could do. Sure enough, when Wal-Mart was completed AFCU was there.
Unfortunately, everyone else soon realized how cool AFCU was and they branch got so crowded at times that I dreaded waiting in line there. I had to do it every two weeks because my new employer was so old school that they didn’t do direct deposit (that’s another story in and of itself). I’m sure AFCU noticed the popularity there because they have since built another branch just down the street with lots of drive through windows.
When I decided to form an S Corp for all my side business I was torn as to what bank to use. I really wanted to use AFCU but they didn’t offer free business checking as they did personal business checking so I went with Key Bank. They offered free business checking and were the closest bank to my house. When we moved to our third home there was no Key Bank nearby so I looked around again and then learned that AFCU now offered free business checking, so I switched in a heartbeat.
It seems AFCU has always kept up on the latest technology trends. They have worked with every online service and mobile banking service I have tried. When I started writing my own envelope budgeting application (Inzolo), I wanted to find a way to import transactions directly from my bank rather than download transaction files then importing into Inzolo. AFCU has an OFX server and their implementation is so awesome that it made it possible for me to develop and test an OFX import tool for Inzolo. Now I have a nice budgeting application that integrates very nicely with my bank accounts.
A few months ago I attended a launchup event where CFOwise partner Ken Kaufman made that statement that the only time you should enter your bank is to open your account. Now I know AFCU has always offered the ability to mail checks in to cash them. But it isn’t any more convenient that going through the drive-through teller IMHO. But just recently AFCU has now added the ability to scan your check images with a scanner and deposit them through their online interface. How cool is that!? The only down side is that it is only available for personal accounts so I can’t deposit business checks this way. I tweeted about it and got a reply that they are working on it and hope to have the ability to deposit business checks soon. I’m sure they will.
Thanks for everything AFCU. Keep up the great work!
June 30, 2010
Posted in: Finance
3 Comments
Integrate MailChimp with your Django App
Here’s a quick & easy method for integrating MailChimp into your next Django application.
1. Sign up for MailChimp <– this is an affiliate link. Sign up is free, but if you decide to upgrade to a paid account you will get a $30 credit by using this link.
2. Install greatape
sudo pip install greatape
3. Create a MailChimp API key by going to Account -> API Keys & Info
4. Use the MailChimp API for your emailing needs! Here is some example code to add a subscriber to your default list:
from greatape import MailChimp
mc = MailChimp('yourlongapikey-us1')
lists = mc.lists()
mc.listSubscribe(
id=lists[0]['id'],
email_address='user@sample.com',
merge_vars={'FNAME': 'John'},
double_optin=False
)
Find more information and to see available API calls, check out the MailChimp API documentation.
Why use MailChimp? You certainly don’t need to. You can roll your own email system in Django. But I highly recommend checking them out to make use of their awesome tools. They make it easy to set up templates, campaigns, auto-responders, etc. Plus, you can track statistics on the emails you send.
May 21, 2010
Tags: django, mailchimp Posted in: Programming & Internet
10 Comments
Extending Django settings.py File
When first learning Django & python, one issue I had was how to store my settings.py file in SVN. It’s been a while and things are a little hazy, but I remember my settings.py file in my local development environment was always out of sync and I was careful not to include it in updates.
I’ve since learned a better way that is actually quite common as I have seen. I am also now using git… but that’s neither here nor there.
In my opinion, your settings.py file should only contain what should be on your live site. This should be in your repository. You can then extend your settings by adding the following at the bottom of your settings.py file:
try:
from local_settings import *
except ImportError:
pass
Now you can add a local_settings.py file in the same directory as your settings.py file. Simply override the settings you want such as “DEBUG = True”
Don’t add your local_settings.py file to the repository. Ideally, your live server should not have a local_settings.py file.
May 13, 2010
Tags: django Posted in: Programming & Internet
11 Comments
Implementing a Forgot Password Feature on a Django Site
Here is something that seems to be quite common on any type of membership site – members forget their password.
This morning I was about to write this and I though surely there must be something build in. Surely.
It’s turns out it is built in quite nicely and very easy to use. Start with a simple link on your template:
<a href="{% url django.contrib.auth.views.password_reset %}">Forgot your password?</a>
Then, create the following four templates:
<template_dir>/registration/password_reset_confirm.html
<template_dir>/registration/password_reset_form.html
<template_dir>/registration/password_reset_done.html
<template_dir>/registration/password_reset_complete.html
Note that you don’t even need to create these templates for the feature to work. If you don’t create them you will see the forms using the default Django admin template. Obviously you’ll want to create them and extend your base template.
Check out the auth build in views docs for more info.
April 22, 2010
Tags: django, forgot password, password reset Posted in: Programming & Internet
No Comments
Mobile App on Subdomain with Django
I’ve noticed a fairly common pattern arising with mobile and iPhone versions of websites using sub-domains. Clicky is an excellent example of this. They provide an iPhone version of their site at i.getclicky.com and a generic mobile version at m.getclicky.com.
I want to create something similar for Inzolo.com. I assumed that Django, with all its awesomeness could handle this without much fuss. But I really wasn’t sure how to put all the pieces together. Essentially, I need to create new sites on sub-domains that use the same models with different views and templates. My initial search of Google returned various results of simply creating mobile versions of existing websites by providing alternate templates, but that is not what I need to do (well, I suppose I ought to, but that’s not on the priority list yet). I don’t want my sales & info pages at the root of the site, I want the actual app that users log in to budget with – only a dumbed down version without all the ajax.
Creating a new project is one solution, but it is not ideal. I could have my settings point to the same database and copy or symlink my model, but it seems a bit kludgy.
So I went to where I normally go to get quick tips on Django – the #django IRC channel. jumpa was particularly helpful in providing the tip I needed.
Since I am using mod_wsgi, I can create an alternate settings file for my mobile sub-domains. That works great on my live site, but for my testing environment I don’t use mod_wsgi. I simply use “manage.py runserver”. I learned that is not much of an issue either as I can call “manage.py runserver –settings=mobile_settings 0.0.0.0:8001″
So now, I have the preliminary info I need, I can start building. Just one last thing. I figure I can use most of the existing settings in my main settings file, so I plan to just extend it to mobile_settings.py. At the top of mobile_settings.py I would just add the following, then proceed to overwrite/add the necessary settings:
from settings import *
** UPDATE **
As I suspected there wasn’t much to it. I created a new app in my project name mobile. I also created a new template directory for my mobile templates. Here is an example of what my mobile_settings.py file looks like:
from settings import * ROOT_URLCONF = 'mysite.mobile_urls' TEMPLATE_DIRS += ( "/path/to/my/mobile/templates", ) INSTALLED_APPS += ( 'mysite.mobile', )
March 3, 2010
Tags: django, iphone, mobile, python Posted in: Programming & Internet
9 Comments
Django: ProgrammingError: Can’t Adapt
I find I get an error like this far too often, but not often enough to remember why I got the problem the previous time. For my own sanity, I’m blogging about it for reference. The error itself is not very descriptive:
Exception Type: ProgrammingError
Exception Value: can’t adapt
Unless there is something I’m forgetting, it seems 100% of the time it has been a simple error. I use the get_or_create function to retrieve a model, but I don’t account for the “created” variable. So then I try to use the tuple as a model object somewhere and it throws this error.
For example, here is the wrong way:
person = Person.objects.get_or_create(first_name="Dustin", last_name="Davis") print person.first_name
And now for the correction:
person, created = Person.objects.get_or_create(first_name="Dustin", last_name="Davis") print person.first_name
January 28, 2010
Tags: django Posted in: Programming & Internet
11 Comments
Basic Authentication on mod_wsgi
I’m currently in the process of creating an iPhone app for Inzolo. This requires an API of course. I wanted to take advantage of what was currently available for Django and I came across wapi. Time is of the essence so I decided to take the easiest route and use basic authentication for now. (I’m still learning about API best practices).
I got some basic API calls working in my local machine running “manage.py runserver”. Once I pushed it live, the basic authentication would not work. I’m hosting with Webfaction so I posted to the forum for help and continued to look.
I wasn’t making progress at all so I started looking for another API framework and learned of Piston. In hindsight I would have started here because it was developed by bitbucket.org and it seems it will have much longer longevity.
In any case, while reading the docs for Piston I saw this note:
Note: that using
piston.authentication.HttpBasicAuthenticationwith apache and mod_wsgi requires you to add theWSGIPassAuthorization Ondirective to the server or vhost config, otherwise django-piston cannot read the authentication data fromHTTP_AUTHORIZATIONinrequest.META. See: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIPassAuthorization.
That was the clue I needed! I added this one-liner to apache config and… still didn’t work.
I then went through the process of upgrading. I was running Django (1.0.2)/mod_wsgi (2.0)/Python (2.5), I upgraded to Django (1.1.1)/mod_wsgi (2.5)/Python (2.5). Now, with the “WSGIPassAuthorization On” it works.
January 11, 2010
Tags: api, authentication, basic auth, djanog, mod_wsgi, piston, wapi, webfaction, wsgi Posted in: Programming & Internet
10 Comments
Fixing IE Issues
This morning for whatever reason I was loathing IE. I hadn’t done any development work all weekend so I don’t even know why it was on my mind. In any case I had an epiphany of sorts.
Despite being totally proprietary, IE seems to be the most easily exploited browser due to its support of active x. (It’s no coincidence that IE users suffer from the most viruses, but that is neither here nor there). What if someone were to hack IE and make use of the popular open source rendering engine webkit?
So instead of the ugly display because IE still can’t do CSS rounded corners and other goodies, and instead of lame javascript errors, IE could finally work!
Surely I’m not the smartest guy on the planet. Someone had to have thought of this already. But would that person spend the time to make it happen?
Sure they would… if they worked for Google.
I was delighted to find Google Chrome Frame. It
I tried it out on a particular site I was working on. I have never seen IE render so beautifully!
Thanks Google for making IE suck less!
December 15, 2009
Tags: Chrome, Google, IE Posted in: Programming & Internet, Technology
37 Comments
Copy Model Object in Django
I ran into a situation where I wanted to created a new database record from an existing record (model object). I figured there should be a fairly simple solution. It turns out there is and I want to thank Seveas on IRC #django for pointing it out for me. This is essentially what I did:
from copy import deepcopy
old_obj = deepcopy(obj)
old_obj.id = None
old_obj.save()
Voila!
November 5, 2009
Tags: django Posted in: Programming & Internet
17 Comments
Why The Cash Envelope System Didn’t Work for Us
Now let me preface this by saying I am a huge fan of Dave Ramsey and I see the wisdom in all of his teachings. Now that said, I readily admit I don’t follow everything he says. One area in which I don’t follow along is with the cash envelope budget system.
I think the system is excellent. I do believe it “hurts” more to spend cash. It is hard for me to break a $20. I like that fact that when I spend cash I usually end up with change that becomes savings because I never spend change (I don’t know that Dave ever mentions that one, but it is a nice bonus).
My wife and I tried the cash envelope system. We gave up after only two months. Here are the reasons why:
- Inconvenience. Let’s face it, debit cards make life so much more convenient. It is not convenient to got to the bank or ATM once or twice a month to allocate cash in your envelopes. I hate waiting in line at the bank so I avoid it at all costs.
- Inconvenience. Yeah, same reason, but different. It is inconvenient to pay with cash. Grocery stores are not so bad really – unless you use the self-checkout, which I often do – again, because there is usually no lines there. Putting cash in those machines is downright painful. And really, who pays for gasoline with cash anymore?
- Location of the envelope. It’s happened on more than one occasion that my wife is making dinner and finds she is missing an ingredient. So what does she do? She calls me and asks that I pick it up on the way home from work. If I don’t have enough blow money in my wallet I reach for the debit card.
- Have you ever reached the checkout and when it is time to pay you realize you don’t have your wallet. That is really mortifying to me. I’m frantic in that case. I start looking through my car for a hidden $100 bill (it’s never there) or a blank check (never there either). Even if I only live 3 blocks away it is inconvenient and super embarrassing. If you forget your envelope and you don’t realize it before you get in line to checkout, are you really going to go home and get it? Not me, I’ll pull out the debit card again. Of course my intention is to go back to the bank and deposit the amount of cash I spent, but I don’t because that is so… inconvenient!
- While it “hurts” me to spend cash, it seems to have the opposite effect on my wife. If money talks, all it ever says to my wife is “goodbye”. I’m not being rude here. She readily admits this. It’s not more difficult for my dear wife to spend cash than it is to spend money in any other way. Basically, it is just more (there it is again) inconvenient.
Let’s face it. I love debit cards. What I like about them is that if you use your debit card as a debit card (as opposed to credit card) it withdraws the cash out of your account immediately. Your bank account balance is updated immediately (at least where I bank it is).
Here are some more things I love about my debit card:
- It is free to use. I have a free checking account. I don’t have to pay for new checks as long as I use my debit card.
- My bank let’s me customize it. I generally put pictures of my kids on it so people can tell me how cute they are. I sometimes wonder though if my bank would be opposed to me scanning in my drivers license so people don’t have to ask for it when I use my debit card in place of a credit card.
- It’s thin. With all that cash, your wallet can become a pain in the butt – literally.
- It doubles as a credit card. For those places that don’t accept debit cards but can take credit cards, my debit card works fine. I generally have to wait a day or two for the transaction to appear on my bank statement though.
- Did I mention it is convenient?
So, how do we make use of the timeless & effective envelope budget system with debit cards? We use Inzolo.
Whenever I get income, be it a paycheck or any other form of income, I decide where we are going to spend that money and allocate it to a virtual envelope.
Whenever we spend money using our debit card, the transaction imported lightning fast into Inzolo and I specify what envelope that money came out of. I can visually see all my envelope balances. If I go over in an envelope I can easily move the exact amount I need to cover the difference from another envelope.
It’s basically like haveing dozens of savings accounts set up in your bank and deciding where each transaction will come out of. I can even split transactions so that different portions come out of different envelopes.
So if you love the idea of the cash envelope system, but don’t feel you have the will power to stick to it, I urge you to give Inzolo a try.

October 20, 2009
Tags: budget, budgeting, cash, envelope budget, envelope method Posted in: Family, Finance, Web Sites
37 Comments



