Paris, Texas

Fantastic movie. From the description of it, I didn’t think I’d like it at all, but I loved it. Probably in my top 25. I couldn’t believe that anyone did anything like this in 1984. It made sense once I found out that it was a co-production between West Germany and France. It’s set in the U.S., so I didn’t realize it was European. It’s the movie that inspired Joshua Tree.

I’ve also been playing with Criticker. Check it out. Probably a better recommendation engine than others I’ve seen.

Someone goes postal on my server.

I’m not the best web server admin, mostly because it tends to bore me. My little server spends most of its time idle, and 90% of the requests it gets are from Google’s bot. (I’ve actually just used Google’s web-admin tools to seriously reduce the crawl rate on my server, because its continually re-examining images that haven’t changed in a decade… To the tune of 2GB per month. Things are much more acceptable, now.)

Anyway, I was listening to my new old Dan Bern album (New American Language) and it started stuttering. I quickly determined the problem wasn’t with the rip of the used CD, but that my server was busy thrashing its swap space. Several iterations of manually invoking the OOM-killer proved ineffective, and I managed to determine there were a zillion instances of php5 running.

I looked at the logs, and found this:

56.0.143.25 – – [08/Mar/2012:11:25:58 -0700] “GET /?p=3335 HTTP/1.1” 200 36014 “http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd
=1&cts=1331231157738&ved=0CCMQFjAA&url=http%3A%2F%2Fnachzen.net%2F%3Fp%3D3335&ei=s_lYT_3-BKqOigKD0ei8Cw&usg=AFQjCNFJvrOwt-dQ-iD6Y5bl6fsiQLZc
pQ&sig2=2JwwkvbKO_70wnK-o7UU8A” “Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /blog/wp-content/themes/berck-steam/style.css HTTP/1.1” 200 8018 “-” “Mozilla/4.0 (compati
ble;)”
56.0.143.25 – – [08/Mar/2012:11:26:00 -0700] “GET /favicon.ico HTTP/1.1” 200 622 “-” “Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101
Firefox/10.0.2”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /blog/wp-includes/wlwmanifest.xml HTTP/1.1” 200 1350 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200901 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200912 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201107 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201106 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?feed=rss HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201012 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201008 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199508 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199702 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199501 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=200003 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199612 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199804 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199602 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199809 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?p=3340 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199510 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /blog/xmlrpc.php?rsd HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?p=3333 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199701 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?p=3335 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199405 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199609 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199408 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199803 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199411 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:03 -0700] “GET /?m=199805 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201010 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201004 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200905 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200806 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201005 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201003 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200812 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200911 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201001 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200811 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?feed=rss2 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200904 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200902 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200805 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201105 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200903 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:26:06 -0700] “GET /?m=199603 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201112 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201110 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200810 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200908 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200910 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201111 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?feed=atom HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200907 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201104 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201103 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201109 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200808 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201006 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201002 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201009 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=200909 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201011 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201202 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201007 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”
56.0.143.25 – – [08/Mar/2012:11:25:59 -0700] “GET /?m=201101 HTTP/1.1” 504 550 “-” “Mozilla/4.0 (compatible;)”

It goes on, but I’ve truncated the paste. It’s a recursive request for everything on the front page of my site, which isn’t nice, but wouldn’t have caused problems except that they were all concurrent. Which is evil. My first thought it was intentionally malicious, but this is weird:

host 56.0.143.25
25.143.0.56.in-addr.arpa domain name pointer gk-central-25.srvs.usps.gov.

The USPS, not China. And the first entry appears to be someone who found the page from a Google search. I’m wondering if maybe there’s some evil Firefox extension that spawns a million connections and tries to download an entire website before you ever click on anything, just in case you want something?

Anyway, I learned my lesson about default values. Max Connections of 150 is no good for dynamic page content on a P4 with 1GB of RAM. Some testing reveals I can support 32 connections without death and destruction resulting (though it’s certainly not fast). So, changed that value to 32 and I’m good to go for now.

Of course, it brings up all kinds of silliness with dynamic page content. There’s probably lots of optimization I could do, but I have homework, and future instances of this will at least keep my music playing.

Wells Fargo Sucks

Back in 2000, I opened a First Union account in Georgia.  First Union was a great little bank with excellent customer service, and I never had a problem with them.  Then, First Union was purchased by Wachovia.  I had a few issues with Wachovia, but they were minimal.  Then, after the financial sector collapse, Wachovia was purchased by Wells Fargo.

At this news, I contemplated switching banks, but it seemed like more trouble than it would be worth.  I try to do most of my banking with ING, but they’ve since been bought by CapitalOne, so I’m sure they’ll be headed downhill soon, and Joanna’s gets paid in paper checks, so it’s convenient to have a real bank nearby.

Today I discovered a dozen fraudulent charges on my Wells Fargo account.  Thanks to detailed reporting, I can tell that these are debit card transactions, mostly to Singapore-based company that sells pre-paid phone minutes.  I suspect that these minutes can be converted into cash and/or easily transferred.

This happens all the time, but the interesting thing is this: I have never, not even once, used this debit card.  It is still in my possession.  This means it was undoubtedly compromised in some way internal to Wells Fargo.  They, of course, insist there are “lots of ways” that my card could be stolen, but not if I’ve never used it.  This sort of incompetence by Wells Fargo is astounding to me.

My solution for the moment has been to disallow them from issuing me a new debit  card.  I have no use for one anyway.  I never use it for precisely this reason: should it be compromised, I’m out of the money until Wells Fargo decides to give it back to me.  Unlike a credit card where I can simply refuse to pay them.

Instead, I managed to convince them to issue me an ATM-only card.  It’s far from foolproof, but there’s no reason to authorize debit card transactions I never use, and an ATM-only card could not have been used in this manner.  Sure, ATM cards can be skimmed and cloned, but I suspect ATM fraud occurs a lot less frequently than debit card fraud.

Midnight in Paris

You guys have probably all seen it already, but I just watched it tonight. Excellent movie, maybe Woody Allen’s best. I’m amazed that after so many years of making movies, he keeps getting better at it. I sincerely enjoyed it, and it had a spark of narrative truth over literal truth, or actualism over realism, something Nabokov and Pynchon both do that I love. Anyway, A+, rent it if you haven’t seen it.

Also, the fact that I knew nothing about it probably made it even better, so don’t go reading reviews. Don’t even read this one.