Friday, September 28, 2007

Use OpenDNS for faster and more secure browsing

I ran across the other day and decided to try it.

There was a definite speed boost! I have Verizon FIOS and the OpenDNS servers are more responsive than Verizon's DNS servers. I've noticed that most pages now load in about 3/4 of a second (time to look up the DNS name, fetch the page, and render it). I use fasterfox to time it.

OpenDNS also provides some interesting reports. You can turn off the DNS logs if you like (privacy and all), but I found them useful. I have a cron job that runs every 5 minutes and fetches my mail via POP and mails it to another account. The cron job had done over 24,000 DNS lookups of the same IP address in the last 8 days. My router is supposed to be caching those requests (isn't that why you run local DNS?), but its easy to see that caching is not happening.

Also, OpenDNS gives you the ability to block domains, and automatically will block phishing and pornographic sites if you want. This can be pretty useful, for kid-safe and normal-user-safe browsing.

I've been pretty happy with using the service so far - especially since it is free. The only thing I've noticed is that I haven't seen any *nix update clients. Anyone found one that they like?

Update: here are some screenshots from their interface

Recent Activity

Recent Activity

Unique Domains

Unique Domains

Top Domains

Top Domains

Sample blocked domain

Blocked domain

Thursday, September 27, 2007

Ruby has a "methods" method to see all available methods

So it turns out that Ruby has a few methods that can really help you figure out what you're doing when you're working with sparsely documented APIs or you just want a quick reference.

I've used the "inspect" method for a long time. You can basically see all of the class members and sometimes other useful information. For example:

irb(main):001:0> s = "My String"
=> "My String"
irb(main):002:0> s.inspect
=> "\"My String\""

irb(main):003:0> a = [1, 2, 3]
=> [1, 2, 3]
irb(main):004:0> a.inspect
=> "[1, 2, 3]"

The inspect method can give you a good idea of what data is in a particular object. But what if you want to see all methods an object holds? Well duh.... use #methods.

irb(main):001:0> require 'pp'
=> true
irb(main):002:0> s = "My String"
=> "My String"
irb(main):003:0> pp s.methods.sort
=> nil

Useful, huh?

Tuesday, September 25, 2007

Get a free $25 by saving with ING Direct

Have you ever looked at the interest rate you get on your savings account? If you're with most banks, its probably less than 1% - much less. I've seen rates as low as a quarter of a percent.

Places like ING Direct are great low-risk way to get some interest on that emergency stash you've been saving. Normal banks love it when you save in their "savings" accounts because they pay so little interest. ING Direct classifies itself as a "high interest savings" account. They currently pay 4.30% APY - much better than my bank (and probably yours).

How it works

ING's banking demo is probably the best way to learn about their services. If you want something faster, read this:

  1. You give them your personal information, and they establish an electronic link between your bank account and their savings account.

  2. You transfer money between your bank and ING by using their online interface. It takes a few days to transfer money between accounts.

  3. The money in ING earns 4.30% interest.

  4. You make more money on your savings.

Its a simple system and has served me well over the past few years. My money is only a few days away if I need it. In 2006, I made over $180 dollars by putting money in this account that would have sat in my bank otherwise.

Want free money?

If you decide to sign up with ING Direct and you will be depositing $250 or more, you can get $25 free by having a ING Direct member refer you. Of course I'd be happy to help you get that free money. Email me at with your first and last name and I'll send you a referral link pronto. I get $10 if you decide to sign up. It's true - I'm not joking!

If you like, I can also refer you for the Electric Orange checking account (see below). The reward is the same.

Need faster access?

If 3-4 days isn't fast enough for you, ING now has an Electric Orange checking account. The interest rate isn't as high (3.50% APY for deposits under $50k), but you do get instant access to your money via a MasterCard debit card. I'd personally rather have the higher interest rate, but some people might find the Electric Orange account makes a good replacement for their existing checking account.

Best use of the account

I'm no financial advisor, but it seems to me that its not the best idea to invest large sums of money with ING Direct. I went to our mutual fund advisor today and I don't think a single fund had less than 6% interest for the last year. Some had over 20%. While you have to choose a mutual fund for its performance over time (10 years or longer), it is clear that most mutual funds are going to perform better than ING Direct, although with slightly more risk.

If you're investing over $10k, you're probably past the point of saving money for emergency purposes and saving more for retirement or other financial goals. I think ING makes a good vehicle to get more out of your everyday dollar, but don't forget the power of a more traditional investment option.

Automatic updates in Debian Linux (etch)

UPDATE: I found a better way to do this

I have half a dozen Debian Linux boxes in various places that I administer. Some are file servers, some are meant to do rsync backups, and some have lost their purpose and I simply keep them around because they are on a fast Internet connection. These are not critical in any way, but they are often useful to have around as an entry point into a network or to host some simple service.

I've searched the Internet for a good way to keep these boxes up to date without having to administer them all the time. After all, I don't want to SSH to n boxes once a week (or more) just to run apt-get update && apt-get upgrade. And what if some critical hole is found in SSH and I can't patch the box in a reasonable time? Or, more likely, what if I just don't hear about the critical hole and the box gets exploited days later?

Most Debian administrators seem to think that using a tool like cron-apt is the best way to go about things. Cron-apt downloads all available updates and sticks them in apt's cache, but does not install them. This does make it quicker to manually update since the packages are already present on the system. If I administered these boxes for a living, I would be plenty happy with the way that cron-apt downloads the packages and sends you an email when new packages are ready to install. But since I want the minimal fuss, I chose a different way.

Ideally, Debian would have a tool that did something similar to Synaptic's GUI interface.

Synaptic Auto Update

This automatically installs security updates and leaves the rest to the user. I'm not quite sure what mechanisms it uses, but I've used this shell script to accomplish the same thing for over a year.

/bin/date >> /root/autoupdate
/usr/bin/apt-get update >> /root/autoupdate
/usr/bin/apt-get upgrade -y -t security >> /root/autoupdate
/usr/bin/apt-get autoclean

I drop this script into /etc/cron.daily/autoupdate and forget about it. It logs all actions it takes to /root/autoupdate, so I can look back and see what has automatically been installed. It also only installs security updates, although I usually leave off the "-t security" part and let it install everything. In my experience, the stable version of Debian (currently etch) has very few updates that break anything, especially if you haven't customized your configuration files heavily. I've been running this script in several places over the last year and each box will generally install everything except for kernel upgrades, since they usually require a reboot.

A lot of Debian administrators are nay-sayers to this type of approach. This is probably because they've seen many a non-stable distribution break horribly with something like this. If this were a production level box with many users depending on it, I'd also take the approach of manually installing updates. But when I actually want to do something else with my life than manually run apt-get on boxes I occasionally use, this is the perfect solution.

Monday, September 24, 2007

Friends don't let friends use First Step Internet

A long time ago, in a dream, really a nightmare, I had this terrible ISP - and then I realized that it wasn't a dream at all. It was real.

The ISP was First Step Internet. When I was in college, I used to live in this apartment complex that bundled Internet with their lease agreement. It was really a good idea, because it puts your Internet bill into your rent, so you have more predictable monthly expenses. It also forced your roommates to help pay for Internet. For some reason I always had roommates that didn't want to pay because they didn't need the Internet. And at $15 a month, you really couldn't beat it since most other offerings were at least $25 per month. When you're in college, $10 per month is a lot of money.

But the service from First Step Internet was terrible.

In the beginning, I was actually pretty excited. They came and wired all the rooms in the apartment complex with CAT5 cables, and we were eventually given the OK to plug in and use the Internet. There was no proprietary setup with a lot of ISPs like Verizon - just get an IP address from the DHCP server and you were connected.

It was initially opened up a week or two before the school year started. When I was first testing the line, I was happy with it since I was getting about 3 megs down and 1 meg up. While not the best, I definitely couldn't complain for $15/3 roommates = $5 per month.

But as soon as everyone came back for the school year and plugged into their computers, the service came to a screeching halt. Here is one of the results I got from their speed test results:

Slow First Step Internet

Can you imagine only getting 85kbps to your ISP, and trying to share that among 3 people? Just think about the speed you would get to basically any site on the Internet. Now magnify that by about 10 times and you will get an idea for the pain that we felt while using their service. This screenshot was taken about 1am, so its not like their lines were busy. This was a good speed test. I've seen them 35kbps and below on their broadband lines.

There were many problems with their service, and I am going to list some of those that I experienced.

  • Very slow link speeds (as seen above)

  • Very high latency (150ms+ ping to was common)

  • We were not given a public IP address. Instead I had a non-routable IP in the 192.168.x.y range. I talked with their technical support and they absolutely would not give me a public IP address or even forward a single port to my machine for SSH.

  • They used default/weak passwords or vulnerable switches/routers. Someone from our apartment complex was obviously as frustrated as I was and hacked their equipment. Unfortunately they weren't too smart and when First Step tracked them down they had their network privileges revoked.

  • They subjectively blacklisted certain apartments for using too much bandwidth. When I sent them the screenshot above the tech confirmed my apartment was blacklisted, and that is why I was getting slow speeds. He then later told me that when they put in the bandwidth rules, they put them in backwards so that I had 85kbps down and something like 300kbps up. Not only did they severely limit the speed, they put the rules in backwards to make the service even more unbearable? What kind of ISP is this?

  • Their switches limited bandwidth by switch port and NOT by throttling the connection to the remote site you were connecting to. So, if I wanted to share a file with my roommate or play a LAN game, I was still limited by the 85/300kbps rule.

  • Even though First Step has a dedicated wireless link to my university, I still could not get under 200ms pings to the CS department Solaris servers. WTF?

  • First Step was at their worst when I contacted them about a problem I knew at least a dozen people in the apartment complex were having. For some reason they couldn't access Hotmail through Internet Explorer. It worked fine with Firefox - but Internet Explorer would simply stop loading the page after the initial log in. Since I run Linux I never experienced the problem myself, but I tried for weeks to get them to understand that many people that I knew were having this issue. I even considered starting a petition, having people sign it and sending it to them. Finally I sent them a packet dump detailing all of the problem frame numbers and showing the difference in behavior between IE and Firefox. They came back a few days later saying that their MikroTik router had a bug in its firmware.

  • My entire apartment complex (200+ people) was served Internet by a single DSL line. This was a direct quote from one of their techs after a long conversation about why my service was so slow.

At the end of the day the worst part of everything was that their service was consistently bad. Their techs were about the skill level I would expect - able to help most home users with general Internet problems. But sometimes I did feel like they were trying to fool me by telling me that the Internet was fine and 200ms pings were normal.

Man, I'm glad I don't even live within range of First Step Internet anymore. They are hazardous to your health.

There is a reason exists

At first I was kind of surprised to find the site

But after owning a Mitsubishi for about a year and a half, I can tell you - it is justified! Mitsubishi has a problem with creating defective products and not supporting their customers when things go bad. Let me tell you about all the problems I've had with my 2002 Mitsubishi Galant.

Broken motor mounts

I don't know how the heck this happens. I think that the mounts must have at least been damaged when I bought the car and progressively got worse over time. I drive the car pretty conservatively, so I'm not sure what I could have done to have caused this to happen.

Basically, the whole car shakes when the engine is under load. While passing another car moving between 60-80mph on the freeway, the car would feel normal until you let off the gas - at which point it felt like you were hitting a small animal (or large pothole) while the engine shifted back and forward and the transmission made a huge thunk. I literally thought I was going to lose the transmission when it was happening.

After a couple of hundred dollars to fix the motor mounts, it seems there is some permanent damage. See the next section.

Transmission shifts rough from 2nd to 3rd gear

I've owned my fair share of cars (and driven plenty more), and even though I did lose the transmission on one of them, it was never as rough shifting as this one. There was actually less noise and discomfort during the shift when the transmission failed than each rough shift I have with the Mitsubishi.

Each time I slowly accelerate to about 30mph, especially while the engine is cold, there is an extremely rough shift from 2nd to 3rd gear. It is rough enough that everyone in the car notices it and makes the car uncomfortable to drive. While it is hard to describe exactly how hard the shift is, I would say that if I had some type of drink sitting on the center console, it would undoubtedly be knocked over during the shift.

I had the transmission flushed back in December with the $150 "special" Mitsubishi transmission fluid with no effect.

I also wonder if the broken motor mounts contributed to or caused this problem. Before fixing the motor mounts, this rough shift problem was much worse, since the rough shift was accompanied by a general slosh of the engine moving back and forth. Since replacing the motor mounts the effects of the rough shift take less time, but it is still quite pronounced. It seems logical to me that hundreds of bad shifts with a loose engine could cause transmission problems. I'm not a mechanic though, so I don't really know.

Brakes squeak constantly

Every single time I brake I hear loud squeaks from the brakes. Loud enough to hurt your ears (the pitch is the worst) and to have people occasionally look over at you after you stop at a red light.

I've taken the car to at least 3 different brake shops. While these people are normally plenty happy to sell you new products, they all tell me that this is normal brake noise. Well, not quite in those words. Essentially they've all said that the brakes look normal on inspection, usually accompanied with some advice that brakes will squeak in the winter time, after a big rain, and when the car hasn't been driven in a while. My Mitsubishi's brakes squeak every single day of the year, whether or not it rained, even in 90 degree weather, and almost always at the same "level" on the brake pedal.

Fortunately I know I'm not crazy on this one:

There are also some reports of the brakes failing altogether - not something that makes me feel good.

UPDATE 12/30/09: Commenter Josh says that Wagner brand Thermoquiet pads won't squeak. I may be going for those soon since I started driving this car again and its driving me crazy.

Paint peeling

This is probably the worst of all the problems I've had with the car. The paint is fading like crazy all over the car and it looks terrible. The pictures below show how bad it is. There are quite a few others having the same problem, although most of their cars are black while mine is silver. I talked with a dealer in Spokane, Washington and the manager said that he had seen this paint problem on dozens on Mitsubishi cars. The best information I've come across is that there was a bad clear coat put on the car, causing the defect and peeling after a couple of years. All of the paint has to be stripped off the metal and re-applied. You can't just paint over the affected parts or it will just fade again. looks like it was a good resource at one point to help people affected with this problem to communicate with Mitsubishi. As of now (September 2007) the site's domain name is parked and no longer has any information about the problem. Thankfully Google cache had the page and I was able to save some snapshots of it. Later, I found that the actual content of the page is still available at and the "old news" section is available at . I also zipped up the contents of the page and put it in this file.

Mitsubishi Paint 3Mitsubishi Paint 1Mitsubishi Paint 2Mitsubishi Paint 4Mitsubishi Paint 5

There is also quite a long list of people complaining about the same paint problem happening to their Mitsubishi cars:

And some other links:

Water being sprayed into passenger cabin

UPDATE 12/30/09: After fixing the heat (see next section), I found a possible fix. When taking apart the lower dash and center console for the heater control valve, I noticed part of the airway assembly nearest the center console was clogging up with leaves and debris. Its worth cleaning it out if you are experiencing this problem and can't easily get under the car.


This summer we got to visit the pool more than we wanted to. Each time I turned left with the air conditioning on, water sprayed under pressure into the passenger cabin. Mostly it fell onto the passenger side and formed quite a pool of water, although it did drip on my feet by the gas pedal sometimes.

We took it to a local mechanic and he said that the problem was caused by the cabin air intake. It does not have an air filter, and therefore leafs and other gunk from the road tend to accumulate inside the cabin air system. Eventually enough junk in the system clogs the drain and the water has no place to go but into the passenger cabin.

Mitsubishi has released a modification to their original design that includes an air filter for the cabin air intake. Of course they won't just fix it for you. The part is less than $100, but the billable time for a mechanic to get to the spot buried in the firewall to replace it is like 5-8 hours. At $70/hour, I was quoted a price about $600 to get it fixed. Do you think anyone is going to want to pay that much money to fix a problem Mitsubishi should have fixed in the design stage of their car? Not me.

For now I had the mechanic get under the car and clean as much junk out of the cabin air system as possible. It hasn't been leaking since, but I only had to use the air conditioning for a couple of weeks before it cooled down enough outside so that I don't need the air conditioning. I can't wait to see what will happen next summer :( I'm sure the problem will resurface, right along with the bad smell and mold that accompanied the first leak.

See the pictures and notice the water spots:

Water in the cabin 1Water in the cabin 2Water in the cabin 3Water in the cabin 4

Again, others have this exact same problem:

Heater does not work

UPDATE 12/30/09: This problem is most often caused by a defective heater control valve. If your heat isn't working, it is very likely that you need to replace the heater control valve prior to replacing the heater core or flushing it! Don't let your mechanic talk you into the more expensive option until you know you need it. He can test it by removing the lower part of the dash and manually moving the control valve arm.

I replaced the heater control valve myself with one I bought off ebay (about $150 shipped) with success! I just needed the valve, some lithium grease, about two hours and a bit of flexibility to get underneath the dash. I found excellent step-by-step instructions for replacing the valve here: .

Another useful tip: if you're in the opposite situation (i.e. heater control valve is stuck in the "on" position), making the car unbearably hot because the heat is always on, you can press the recirculate button to temporarily halt the flow of heat from the engine. The setting won't stick between car starts, but at least you'll be able to drive around without all windows down in the dead of winter.


Recently there was a cold morning and I decided to turn on the heater in my Galant. It turns out that was a mistake. As soon as I switched the temperature gauge from cold to hot, I heard a clicking noise like a piece of paper in a fan (although much louder) from behind the dash. It stopped after a few seconds. I immediately turned off the fan, and after a few minutes tried it again. The fan blows air just fine, and the air conditioning still works, but no hot air comes out at all.

I did some searching on the 'net and found that this is probably related to a bad heater control valve. I guess they get stuck when they haven't been used all summer and then get switched to 'on' at the beginning of winter. Geez, can anything else go wrong with this car? I haven't yet taken the car to a mechanic for this one - I'll post an update when I find out what the bill will be.

In the meantime, you can read about other people having problems with their Mitsubishi heat:

Erratic idle when transmission is in gear

UPDATE 12/30/09: I've seen this problem a few times since I last posted, but heard the likely cause is dirty fuel injectors and throttle body. Get that fuel injector cleaning service if you're seeing this one.


The latest problem has only surfaced in the last week or two. In the past I have occasionally seen the car idle quite badly, but this only happened maybe once per month. For the last week it can hardly idle while sitting at a stop light. This seems to only happen once the car has warmed up. My Galant will start nicely and drive on the freeway nicely anytime, but as soon as I slow down to below 25 miles per hour or I come to a stop at a red light, it begins to puke. It is so bad I've actually had problems with power steering loss as I go around a corner. The car hasn't died on me yet, but I'm expecting it to soon since I lose enough power that the lights go out and the tachometer drops to zero before it regains power. I have to give the car a lot of gas to keep going.

The Galant also shifts and revs in strange ways. It will shift when it doesn't need to and drop two gears when it only needs to go one, or just be in the wrong gear altogether.

As soon as I stick the car in neutral or park, it recovers and will idle just fine.

I haven't found many others having this issue on their Mitsubishi cars. Most posts say too much air/not enough gas or the like related to a rough idle. Hopefully the mechanic will find something out.


As you can see I've had quite the list of problems. Once I took it to a mechanic and even he couldn't believe all of the problems I've had. Beyond the problems, the biggest thing I've learned from this experience is that Mitsubishi will not take care of their customers. For example, the people that I've seen that have had their paint problems fixed by Mitsubishi had to fight tooth and nail to get it done (like complain to their local TV station). Mitsubishi won't take care of them when they have problems, and for this reason I am unhappy with them.

Sometimes the best way to make yourself known is to vote with your dollar. This was definitely my first and last Mitsubishi. I wish I still had my 1994 Honda Civic, since I had less problems with it. There were two reasons I sold it: 1. No air conditioning, 2. My wife can't drive a manual transmission.

Hopefully you read this article because you were considering to buy a Galant and now know that you shouldn't. If you stumbled across this page because you are already having a problem with your Mitsubishi, please comment below and post any relevant information with regard to problems and fixes.

Monday, September 17, 2007

Simple network uptime test

Trying to troubleshoot an intermittent network problem? Just want to know if you ISP is dropping packets or going down altogether?

So many times I've search the 'net for a simple network uptime script. I always wanted to know the exact time the network went down (and came back up) so that I could track down the cause of the problem. Here is a dead-simple script that will do just that:

## ##
## This script continually pings an IP address / hostname and reports *only*
## when it is unable to reach the destination.
## Example: ./

if [[ $1 == "" ]];
echo "Please provide an IP/host to ping"

while [ true ]; do
p=`ping -c 4 $1 > /dev/null 2>&1`
if [[ $? != 0 ]];
echo "Unable to reach $1 at $d"
sleep 1

It works best if you open up multiple terminal windows and try to connect to different portions of your network simultaneously. For example:

./ [my neighboring workstation]
./ [my gateway]
./ [my ISPs DNS]
./ [random domain - ie. or]

This way, you can determine exactly where the failure is AND you have a record of the time it occurred. Hope that helps!

Sunday, September 16, 2007

Advantages of being a WINE developer

I've often thought that it would be neat to contribute to a high-profile open source project. You know, something like Joomla that plans to solve all the world's problems. I recently learned that contributing to the WINE project is just what I needed.

For the uninformed, WINE is a project that allows Microsoft Windows programs to be run in Linux. It sounds like a lofty goal - and it is - but sometimes its actually quite useful. For example, I once had to contribute changes to a Word document that had all kinds of complex formatting - and OpenOffice couldn't handle it. To be fair, OpenOffice could open it fine, but the formatting was inconsistent with what is normally displayed in Word and basically corrupted the layout for anyone that viewed the document later. Long story short, I had no choice but to edit the document with Word, running Windows XP. In true Microsoft fashion, Word running on Windows XP did crash several times before I was able to finish my edits to the document. While I wasn't sure whether to blame Microsoft or my professor for creating that extra-complex document layout, I do know I was yearning to experience those kind of program crashes while running my operating system of choice!

WINE let me do just that. Word 2000 actually runs quite well using WINE on Linux. I don't think the newer versions have the same success though.

More to the point, WINE can run any Windows executable. It may not be perfect, but you have to thank the WINE developers for trying:

Yes, No, Cancel?

This is a picture of the free product Personal Ancestral File available from It helps you keep track of your ancestors. What it wants me to do now is anyone's guess, but it should be clear to you why I want to be a WINE developer. I want the privilege of saying "You won't believe the fun I had today...."

First post on

Welcome to my new WordPress blog! This is the site I'm planning on using to write about my thoughts and experiences with technology and other aspects of life. I plan on writing a lot about Ruby, Linux, computer networking and other things. Hope you enjoy reading!