Weekend website updates

I spent much of this weekend inside, out of the snow, working on a couple of geeky/cool website updates.

First, I sent out about 150 online Christmas cards. For the last few years I used Yahoo Greetings, but this time I decided I wanted something a little more personal. I included a Flickr slideshow and a short holiday letter to the people I haven’t talked to recently. Plus I got to play around with some cool new technology like sIFR and the Amazon CloudFront CDN. If you didn’t receive a card but you’d like one, let me know in the comments.

Second, I developed a dashboard to monitor the health of my web server. I wrote a small script which captures statistics every minute, and then built the dashboard to go along with it. I’m using Flot, a JavaScript graphing library, to generate the graphs. It probably would have been wise to use an existing component to capture the data, but this works fine for now.

Geeky/cool indeed.


Home users often use “virtual private networks” (VPNs) to establish a secure Internet channel to an office network. Recently some home users have found another reason to use a VPN. Many wireless networks are not configured to encrypt any of their traffic, especially those in public such as hotels and coffee shops. Some people have begun using VPNs when connected, simply to encrypt the information that’s sent over the wireless network. Google even offers a free VPN service for anyone connected to Google’s citywide wifi network in Mountain View, California.

I’ve been worried about Internet security myself recently, so I started trying to set up my own VPN using the free OpenVPN software. My goal was simply to encrypt the traffic between my laptop and a computer I run on a wired network. This wouldn’t encrypt all my communications on the Internet backbone, but at least it would prevent snooping on wireless networks.

OpenVPN is designed to handle an incredibly wide variety of networks, and as a result it’s very difficult to configure to do something “simple” like this. I spent an hour reading instructions and generating encryption keys, but when I first tried to run the OpenVPN software on my MacBook, it crashed the computer. I quickly decided this wasn’t for me.

Instead I tried PureVPN, which was a low-cost VPN service open to the public. PureVPN is a pay-as-you-go service and offers a variety of inexpensive service plans. I paid $2.50 and received ten hours of VPN use. This would be a great deal—if the service worked as promised.

PureVPN doesn’t require any software beyond what’s built into Mac OS X or Windows. It was very easy to set up and when I tested it from home, it seemed to work fine. I confirmed that all of my Internet traffic was sent over the encrypted VPN, which ensured that I’d be protected from nosy neighbors. I tried it from a coffee shop once and it worked fine from there as well.

However, the real test occurred when I went on vacation in Las Vegas, Nevada. Away from home for a week, I wanted to use PureVPN over many insecure wireless networks—at hotels, at cafés, and at at my sister’s house. But when I got to Las Vegas, I found that PureVPN was down! It was down the entire week that I was gone, and only came back a few days after I returned home.

I hadn’t invested much money in my PureVPN subscription, so I haven’t contacted them about the downtime. At $2.50 I figure “you get what you pay for.” But unfortunately I can’t recommend PureVPN to anyone else, simply because I don’t trust I can rely on them when I need them.

Using Mint for Personal Finance

I finally entered the 21st century this week when I began using an online personal finance application called Mint.

I’ve been a long-time user of Microsoft Money to keep track of all my bank accounts: checking, credit cards, loans, and investments. I enjoy the comfort of manually entering all my transactions, and reconciling the bank statement at the end of the month. This process lets me keep an eye on my accounts and watch out for suspicious activity. But in ten years of banking, I don’t think I’ve ever found a truly unauthorized transaction.

Microsoft Money made data entry painless and provided many simple reports about where my money is going. But I’ve had trouble finding a similar solution after I switched to a Mac in 2007. Both Quicken Personal Finance for Mac and iBank have atrocious data entry processes that require constant movement between the keyboard and the mouse. It’s also very difficult to generate simple reports in either program. I’ve been using iBank for a year and I still can’t figure out how to see a list of all transactions in a category.

Frustrated with the lack of Mac options, I finally decided to try some online finance apps instead. Mint has developed a very good reputation online so it was the first site I tried. Mint is a web application that actually connects to your banks every night and downloads all of your transactions. It presents you with a summary of your recent transactions and your current balances. You can easily drill down and find more information about your accounts and transactions. The site is beautiful, and reports are easy to generate and customize.

Security was my overwhelming concern—they have your online banking password, so they could access all of the money in your accounts! But they say that they’ve developed reasonable safeguards, and they work with a third-party intermediary to secure your data.

Some more things I like about Mint:

  1. It was incredibly easy to add most of my bank and investment accounts to the site. Mint was pre-configured to work with nearly all of my financial institutions.
  2. The site automatically imports new transactions every time I login. This works well and it’s easy to customize the way different transactions are handled. Mint will send me a text message when large transactions clear or when my balances are low, which is a great service.
  3. The forums are fantastic and there’s already a strong user community sharing tips and tricks about saving money with Mint.
  4. Mint is free, and they make money by suggesting new financial services. But they only recommend services when it’s likely in your best interest. For example, right now Mint says I could save money by moving my checking account to HSBC. This is an unusual business model because most referral programs are difficult to set up and don’t pay well. But financial referrals usually do pay well—think of all the gimmicks to entice you to sign up for a credit card. I suspect Mint will become profitable quickly.

What I don’t like:

  1. I’m still not eager to give my bank account credentials to Mint. It’s impossible to know exactly how Mint stores this data or how secure their service providers are. I’m not sure that there is a good solution to this problem in any environment where the data is outside my immediate control.
  2. If your bank isn’t supported by Mint, there’s no way to track an account manually. This is a significant problem for me. I have a health savings account (HSA) which Mint can’t recognize. Either I need to keep using Quicken for this one account—which is silly—or I need to stop recording transactions from my HSA. Neither option is satisfactory. I will not be able to rely on Mint alone unless I can enter data manually and have my HSA treated equal to all my other accounts.

Next week I’m going to try Wesabe, another site similar to Mint, and see how it stacks up. I also might try Quicken Online, which Intuit is now offering for free. I’ll post reviews of those applications once I’ve had a chance to try them.

The Popular Vote

My friend Paul and did some polling last night, and we uncovered some surprising results! See who the public thinks will win the election: http://www.pkgraham.com/popular_vote/.

Barack Obama: Right for Ethics Reform

Gov. Sarah Palin’s speech to the Republican convention yesterday was focused on the promise of ethics reform. Never mind that the Republicans have been at the center of nearly all of the ethical lapses in Washington. In the last 8 years, the GOP has featured such distinguished congressmen as David Vitter, who admitted to soliciting a prostitute while in office; Sen. Larry Craig, who pled guilty to solicitation last year; Tom DeLay, indicted on campaign finance improprieties; and Bob Ney and Sen. Ted Stevens, respectively convicted and indicted of accepting bribes and lying about it. Vitter and DeLay even had the nerve to show up in Saint Paul this week!

But these issues are minor compared to the larger ethical issues facing our executive branch. George W. Bush spearheaded the invasion a sovereign nation and his top officials made 935 false statements in the process — is that not a lapse in ethical judgment? Bush authorized and encouraged the U.S. military to torture its prisoners, and John McCain has repeatedly endorsed Bush’s use of torture. In February, McCain even encouraged Bush to veto legislation which would have prohibited waterboarding. When the executive branch sanctions prisoner abuse, isn’t that an ethical issue too?

Sen. Barack Obama’s ethics record stands in stark contrast to John McCain and the GOP. Obama worked to pass significant ethics reform in early 2007 and worked hard to keep it from being watered down by the rest of the Senate. Last year Washington Post columnist Ruth Marcus said that Obama “leads the pack” in his record on lobbying reform. And Obama has a four-pronged plan to restore ethical integrity to the executive branch.

If Sarah Palin was serious about restoring good judgment to the White House, she would know that a vote for John McCain is an endorsement of the ethical judgment we’ve seen from the GOP over the last 8 years. Barack Obama stands up for his ethical principles and has true credentials as an ethical reformer. If Sarah Palin truly wanted to promote ethics reform, this is what she would have told the Republican convention.


Ryan at Yosemite National Park Last weekend I travelled to Yosemite National Park here in northern California. It was stunningly beautiful — just amazing, really. My photos from the trip don’t really do it justice, because they don’t really capture the magnificent scale of the landscapes, but they’re still great photos. Enjoy!

Sneaking Ruby Through Google App Engine (and Other Strictly Python Places)

Very insightful post from why the lucky stiff about the challenges and successes he found when attempting to translate Ruby bytecode to Python bytecode. Money quote:

What amazes me is how close Ruby 1.9 bytecode and Python 2.5 bytecode are. Some things translate almost directly. It is completely obvious that Koichi took his cues from Python. Storing argcount, nlocals, stacksize first. Marshalling bytecodes. Storing classes and methods as nested bytecode fragments.

And, really, if that’s true (and I vouch that it is truly, truly true,) then how are Python and Ruby still on separate runtimes? All of these bogus scaling wars and indented code battles are a huge waste of time.


Neither of us stands a chance against Javascript. Why persist with this pitiful feud?