Some T-Shirt Ideas, Oi

January 7th, 2008

I’m feeling annoyed….maybe I need to make some t-shirts.

“Jesus built my hotrod…..now he needs gas for it.”

“Oil is a divine right.”

“Jesus wants us to get the oil.”

Course, they’re no good without some good bansky-esque imagery to go with them…..
Maybe it was my visit to the Tate this afternoon and the fear of the forth coming elections and what is in store.

Bollocks!

`Tis a Time for Giving

December 20th, 2007

If you’re one to dole out some cash to help others in need over the holiday season, consider giving to these 3 blokes sitting in prison. The West Memphis Three have been sitting in prison for ~15 years for crimes they did not commit, one on death row. I’ve been watching the progress of their case for years now, hoping to see some justice for these 3 guys. Thankfully new evidence will finally exonerate them. I originally learned of their case from an HBO movie, Paradise Lost. Unfortunately I wasn’t surprised at the ignorance which convicted these poor fellas.; it’s rampant - not not limited to just America. Over the years, there has been lots of support for freeing these guys by musicians, doing benefit concerts and contributing to their legal fund. If you’re in the giving spirit this holiday season, this is a good cause to consider. Drop them a 20 or 50 spot via pay pal for LDavis11@hotmail.com or you can send them a check here:

Damien Echols Defense Fund
PO Box 1216
Little Rock, AR 72203

This case is yet another shining example why the rest of the US needs to step up and stop executing people. Way to go `Jersey!

Write Your Senate and Congress Representatives

December 19th, 2007

The Register reports that the New York Times have broken a story into the illegal wiretapping conducted by the Bush regime. The register reports the story in short here. In one area where we still have the power to let Bush know we are not going to tolerate his criminal activity in the white house, take the opportunity to let your representatives know we do not wish his legislation to pass, exempting those responsible from prosecution. It’s time the regime is held accountable for the continued criminal activity that’s been conducted during their tenure. From lies about the war in Iraq to continue constitutional violations, how long are Americans willing to stand back passively and look the other way? Being an ex-pat in Europe, I am often embarrassed by the tolerance we as a nation have for the continued abuses coming from the Bush regime. I hope we can stand together and let the world know Americans as a whole do not support the policies and actions coming from the white house. We were duped. We were duped when the idiot was sworn into office and we continue to be duped today by the self interests of those covering their asses for the mistakes made over the past 7 years.

While the article indicates these measures were in place since the 90’s - it’s not come to light that any other President has condoned and allowed - encouraged - their use. Bush and his agenda for the few mega-rich need to be sent the message the rest of us working American’s aren’t interested. Just say No to politics as normal.

That said, IMNSHO that will include Hillary Clinton and anyone from the current Republican ranks. Does Obama have what it takes? I hear rhetoric about new ideas and an end to politics as normal.
Now I feel ambivalent. Bleh. With the economy going into the toilet, the housing market plopping into the toilet, and oil interests sapping at both the environment and our wallets who’s got the “golden balls” to ensure things in the US are put back on track?

Mr Gore, Please Hear My Plea…..

October 12th, 2007

Dear Mr. Gore,
Let me say upfront, I’ve never called myself a Democrat. In recent years, I’ve not called myself a Republican either - go figure. I do think I’m a Republican: a fiscal conservative. No, not a neo-Republican, worrying about social conservatism; that’s really a contradiction to the party IMNSHO. To be honest, I wouldn’t have voted for you when you first ran against Bush. Not because I liked Bush. Not because I didn’t like you. I *think* ‘we’ (me) didn’t know you. Not sure if I do much more now, but I saw your show - and was able to see you as a fellow human; someone who cares of bigger things - more then himself, more then how he might increase the wealth of his wealthy constituents. I dread our options: Hillary, the cardboard facade of change. Who could the GOP offer up for slaughter that’s anything more then a sacrifice?

Please, just run for President.

Congress Votes to Increase the Governement’s Credit Limits

September 28th, 2007

Now that I’m living in London, I don’t get much US news. I do subscribe to a few RSS feeds, namely since the current economic situation has me worried. I have to fret daily about the value of my house and whether I’ll manage to get out from under it within the next 20 years. A day couldn’t go by without having to calculate if the real estate agents will make more in commissions then I actually have in equity; even after dropping about 12 grand cash and 6 months of hard ass labor doing most of the improvement works myself. That’s a pisser, it really is. Greated this morning by a headline in my RSS aggregator, I eagerly click to read how my representatives are working for me, ensuring that the US citizen is just as enslaved by governmental debt as the rest of the Third World.

In an article titled “Congress boosts debt ceiling“, MarketWatch notes,

“The move marks the fifth increase in the debt limit since President Bush took office.”

Seriously, this cannot be true. My fellow republican’s would not stand for this. Not for a second. Republican’s stand for fiscal responsibility, reductions in spending - not enslaving the nation in debt to the likes of China or some other hazy nation.

Woe is me. Who is going to represent the segment of the population who wants to reduce government spending? Who is going to represent those of us who want smaller government? Anyone who’s talked politiks with me knows, I prefer more government locally - less federally. The local community is where your voice can be heard; imagine how loud you have to scream in a crowd of 150 million? The picture that comes to mind is not pretty; but let’s not go there, eh?

I am coming home at some point. What awaits me? I honestly have fear. I am brave. My solidarity with the disenfranchised, gazing at the political meandering of the corrupt and conniving, blankets me in these cold British nights.

GWT 1.4 Released

September 26th, 2007

I had glanced at the google web toolkit quickly in the past; but being as busy as I am, moved on quickly when it was directed to Java programmers. Sadly, as with web applications, UI issues tend crop up in regards to my projects. Being the masochist I am, and seeing as though I’d rather visit the dentist then do UI - today’s announcement caught my attention. Of course my first thought (pFFft) was to google ‘GWT Python’ - I knew someone would agree this was possibility was really more interesting then SJAT (Some Java Ajaxy Toolkit). Low and behold, there is a Python project working on this. Looks like a small community so far (imagine me looking surprised - if you know me, that’s not hard)….
Pyjamas might even fill that void I have; I’ve been aching for something to spark my interest - of course other then the (10 or so unfinsihed) personal projects I have. Let’s not mention the exceedingly fun project(s) at work. Ooops.
Anyhow, I’m going to have to check Pyjamas ou. It might make my (interesting, but unfinished) personal projects and work more enjoyable….Not to mention there’s the start of a spiffy looking webmail project based on this (all in Python of course): Beanmail. Stay tuned yoda, reading the source now….

Re-rasing Exceptions

September 24th, 2007

At times Chris McDonough can write something useful on plope.com; unline me I note. I enjoy reading someone elses pain - especially when I can tend to violate the rules; for better or worse. I did try and imagine what he was working on that pissed him off…chuckling it was after hours of pain and suffering which drove him to write What Not To Do When Writing Python Software. At least, this is typical for me. In his inverse of this post, I found Ian Bicking’s post on Re-raising Exceptions. This is a good find for me, as I was recently violating this: re-raising my exception (incorrectly) to present a more useful error message up to the UI for the application. I always enjoy it when I can improve my software AND *do the right thing* - gives me something to do this week.

Dropkick Murphys

September 5th, 2007

I saw this morning on my punknews feed that the Dropkick Murhphys had released a new song (via video). Being a big fan, I rushed over to the band’s website to check it out. I was shocked. Shocked I say. They drink Budweiser. Come on guys, WTF0. The least you can do is drink Miller Lite. Ok, ok, ok, ok - I’ve switched, I no longer drink that piss Miller Lite anymore. I’ve tried stepping it up a notch, now it’s Stella Artois (aka wife beater) or 1664. Not saying they’re great beers, but they’re not Bud or Miller piss.

You say you can’t believe it…see for yourself right here, notice the drummer:


This definately qualifies as unsat.

Apache Bad Requests (400 Errors)

August 21st, 2007

Having recently noticed some odd behavior with Apache 2.2.4 when examining my apache logs. I noticed an odd number of HTTP 400 errors. Surprisingly, these errors were being generated by my own server - i.e. the IP address of my apache server was issuing the request.

How odd.

The first thing which crossed my mind was someone was trying (or had) exploited my server. I was satisfied that everything was fine; I had recently updated my LAMP setup and checked against rootkits and known exploits. I was annoyed; it was time to try and trace this condition.

After checking against exploits, the first thing to do was check and recheck the apache config files. Using a large number of rewrite rules and custom log format, those were the obvious initial candidates.

My custom log format:
"%h %{%d/%m/%Y %H:%M:%S %z}t %D \"%r\" %>s %I %O \"%{Referer}i\" \"%{User-agent}i\" %{Location}o"

Normal requests show up in the log as follows:
74.8.28.132 21/08/2007 04:42:17 +0100 172 "GET /sawblog/ HTTP/1.0" 200 563 32500 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv;1.8.1.4) Geck/20070603 Fedora/2.0.0.4-2.fc7 Firefox.2.0.0.4" http://www.plope.com/

These Bad Requests look like follows:
64.34.177.88 21/08/2007 04:42:17 +0100 122 "GET /" 400 11 550 "-" "-" -

Since the first thought was the RewriteRules were causing this; I tried to provoke the bad request myself. Crawling various parts of my site, I’d hoped I would find a bad Rewrite rule. Life (and computers) are never so easy. I found I was unable to provoke the condition. I began to think I wasn’t even on the right track.

What else could it be? Monitoring (nagios)? I’d used nagios for years and I’d never seen this problem. It couldn’t see how that could be the cause. I could see the nagios request being logged with the expected 200 response in the logs. Not worth further consideration.

I had recently began playing withcacti and graphing again. This did not make much sense either; all graphing was being done by external scripts I wrote - and I wasn’t hitting the http server directly. Logic continued to point to a bad rewrite somehow casing a request to be proxied incorrectly to the local apache server instead of one of my back-end applications. This made sense to be the culprit. Go with it.

As a last resort I figured I would jump on #apache on irc and see if anyone there might have seen this or confirm it could be a Rewrite rule causing it. Unfortunately the Apache IRC channel didn’t offer much help. Outside the obvious, no one offered up any insight that I couldn’t deduce on my own. I had hoped someone had experienced this condition or knew if a fudged RewriteRule could be the cause. The general consensus on #apache was it would be awfully difficult to fudge a rewrite rule to cause what I was seeing. Unfortunately, #apache wasn’t much use.

The condition proved to be more of an annoyance then an actual problem (no URL I could find actually resulted in an error raised to users). I just noodled over the issue for awhile. Over this past weekend, I decided I would crawl the site and then ramp up some load against server. Just see if I could provoke the condition once again.

Pointing a load utility against the site and ramping up the load was unable to provoke it (at first). Running for a substantial period of time, there were no 400 errors being logged. Frustrated, I quit my load test. Low and behold, nearly immediately I had logged several bad requests. How could that be? At least, I had something to go on: Quiting my load test in mid-stream resulted in a number of bad requests.

Interesting.

With that in mind, I reran some load and quit the test, duplicating the bad requests being logged. Excellent, reproducible condition. Like anyone, I loathe the unreproducible error. Lord knows, I get enough of those from the users of my apps….

I have apache running the prefork MPM module. So, what appears to be happening is during load, apache increases the number of servers to handle requests. As soon as the load subsides, apache kills the spare servers to the MaxSpareServers threshold: 30 - as Apache kills of the unnecessary servers, the Bad Request log entry shows up. Bingo.

Currently I’m trying to find out if this is a bug in apache, but as of yet I’m not finding anything insightful. Hopefully someone who finds themselves confronted with this condition won’t spin as many wheels as I.

Tracing the Python Stack in GDB

May 22nd, 2007

Several times I have been confronted with this problem. The last time was some time ago, where my main project application would lockup, and we were unable to consistently reproduce the problem. It always seems to be an exercise in futility attempting to debug a hung Zope process using GDB. Since I’m not an expert (or a novice for that matter) in GDB, I recently found this blog by Jeremy Hylton which is worthy of having handy the next time the situation arises and I need to get into the debugger. Jeremy gives a good example of the process here .