Wednesday, May 06, 2009

Chad Fowler's 20 Rails Development No-No's

Chad Fowler, who will be keynoting at the Aloha on Rails RailsConf, recently released a list a 20 Rails Development No-No's on his blog. It is a decent list to review to help make yourself aware of various Rails "code smells." Throwing in my 2 cents, for number 10, Code in the Wrong Place, I would like to mention controllers that load the flash with HTML. If you are putting any HTML in your flash then you should use a proper view technology, such as a partial, to load it up:

Ok, so thats a pretty trivial example, what I really wanted to say in this post is that Aloha on Rails is coming and it is going to be pretty awesome. Seth Ladd released a nice blog post about it today. You should really check it out.

VPN fix after Ubuntu Update - LCP terminated by peer

I use a VPN connection to my corporate email system to pull in emails and send them over to a gmail account with fetchmail. After upgrading to Ubuntu 9.04 (actually I think it was the upgrade to 8.10, but I went from 8.04 -> 8.10 -> 9.04 on the same day) the setup came crashing down - the VPN would no longer connect and thus and I was no longer able to get any emails. It turns out that the problem was related to a change in a configuration file after updating...before I get to that however, let me note my configuration.

First, my /etc/ppp/peers/cambervpn file:

next, my /etc/ppp/chap-secrets file:

next, my /etc/ppp/ip-up.d/cambervpn file:

and finally, my /etc/ppp/ip-down.d/cambervpn file:

To bring that up, you type "sudo pon cambervpn". After the upgrade, my syslog was telling me "Non-zero Async Control Character Maps are not supported!" and "LCP terminated by peer". Googling around led me believe this was a problem with MPPE. Sure enough, in looking at the file /etc/ppp/options.pptp I found that both MPPE options were commented out. Uncommenting the line "require-mppe-128" did the trick.

Hey, well if you read this far I guess you might be wondering what kind of command I issue to get fetchmail to forward mail over to my gmail account. The following command causes fetchmail to fetch the mail every 300 seconds:

An entry in my .netrc file provides the password for the POP server.