Monthly Archives: November 2005

From Incompetence to Negligence

I’ve been watching a lot of Frontline lately on PBS. I’ve Tivo’d it forever, but rarely watched. Two nights ago I watched The Storm, their analysis of Hurrican Katrina’s effect on New Orleans, and the government reponse to it (at all levels). Go watch it online, I’ll wait.

Back? Good. So what struck me the most was not Brown’s complete denial of responsibility for FEMA’s actions or his seemingly complete disconnect. And it wasn’t what Bush did after Katrina, either. It was what Bush did in 2001, 4 years before Katrina struck. If you’ll recall (since you just watched it), part of the show focused on the history of FEMA, and how it has been managed. Let me present you with an minimal, paraphased timeline:

  • 1992: Hurricane Andrew strikes Florida. It misses Miami, but devestates Homestead. Not until the area emergency management director goes on television and castigates the federal [non-]response does public outrage force the White House to send in FEMA.
  • 1993: President Clinton, recognizing the political cost to Bush 41 of FEMA’s delayed deployment makes a change in the way FEMA is headed. Instead of the political cronies that had headed FEMA during Reagan 2 and Bush 41 he appoints James Lee Witt to head FEMA. The key difference here is that Witt actually had experience in emergency management.
  • 2000: During presidential debates, G. W. Bush says (and I’m paraphrasing), “I actually have to compliment this administration; they’ve done a great job with appointing Witt to head FEMA
  • 2001: After being elected, Bush 43 declines to keep Witt as head of FEMA. While it may be understandable that Bush 43 wanted someone else in the job (it is his right as President, after all), what is not understandable is the man chosen to replace Witt: Joe Allbaugh. Allbaugh’s apparent primary qualification: he lead Bush 43’s national presidential campaign.

This is beyond the apparent disconnect post-Katrina. This is downright negligent. And Bush 43 has no one to pass the buck to — he himself acknowledged the job Witt did, and one must presume he’s capable of the simple analysis required to figure out why Witt had succeeded where others failed.

You can debate whether or not FEMA should have been moved under the Department of Homeland Security all you want. You can debate whether or not Brown did a bad job (he did). What remains true is that the Bush administration ignored success and appointed a crony (a crony with a bad haircut at that!). And if this really is the “CEO Presidency”, then Bush should be taken to task for this blatantly negligent act.

date:2005-11-30 13:29:00
wordpress_id:356
layout:post
slug:from-incompetence-to-negligence
comments:
category:politics

J2ME Development, part 2

So in a previous post I compared two recent mobile development projects: one using J2ME for Motorola IDEN phones, and the other using Python for Nokia Series 60 phones. Since then I’ve done some more work on the J2ME project and have a few additional thoughts and clarifications.

First, I’ve found that most of my initial frustrations aren’t a result of J2ME, but rather Motorola’s crap-tacular IDEN SDK. No support for Ant or project definitions, no way to launch an editor from the tool, and little to no debugging capabilities. Contrasted to Nokia’s J2ME Developer Suite, it’s downright precambrian. In the end I just created a new VMWare machine with just the Motorola tools and Eclipse installed. And it works, which I guess is the important part.

So once I had the toolset running, I did run into some areas where Python has definitely made life easier for developers. Our project’s requirements called for a list-style menu with a status bar at the bottom of the screen (I’d post a screen shot from the emulator, but this is the first class project I’ve done covered by an NDA). My initial inclination was to use the high-level form API, and implement a custom item for the list. A secondary requirement is that the list be numbered, and that pressing the associated number jump you directly to the associated item. What I found, much to my dismay, is that you can’t catch arbitrary keys in a high level form element. Text entries can receive them, but you as the developer still don’t see them. [I should note here that this is the first amount of J2ME development I’ve done, and that while I searched high and low on Google, I’m open to correction]. So I ended up having to drop to the low level API. Not a huge deal, but that’s two different API’s I have to deal with now — low level for menuing, high level for input forms.

Contrast this to Python for Series 60 API. Just like J2ME you can draw directly on the screen’s Canvas and catch key presses. But in my experiments, I can catch key presses anywhere, not just where Nokia thought it would be convenient.

To be fair, I don’t hate J2ME. I don’t even dislike it. It just seems like Nokia has made decisions in designing their API which give the maximum flexibility to the developer, and that’s a good thing. I’m actually going to be doing a research project next semester in which I’ll be developing for J2ME, so I’ll have plenty of additional opportunities to compare and contrast. I’m also still planning on porting my Sudoku implementation to J2ME, just to do a one-to-one comparison. Stay tuned.

date:2005-11-29 09:26:49
wordpress_id:355
layout:post
slug:j2me-development-part-2
comments:
category:development

Like That’s a Bad Thing

OK, so let’s ignore for a moment the fact that I just don’t understand Log Cabin Republicans (rel=nofollow, of course). More to the point, I understand them even less than straight Republicans. But have they forgotten they’re gay!? Via QueerDay, STLtoday.com reports that the LCR has asked the University of Missouri St. Louis to investigate a drag show because the performers:

…mocked heterosexual people in the audience, wore revealing outfits, used inappropriate language and simulated sex acts.

Uh, so what exactly is the problem? That describes the more respectable drag shows I’ve attended. Sounds like a down right wholesome evening.

UPDATE Good as You has more additoinal coverage .

date:2005-11-29 08:30:58
wordpress_id:354
layout:post
slug:like-thats-a-bad-thing
comments:
category:politics

Cold, Hard Cash

So I saw two movies over the past two days, both “bio-pics” and both quite good in their own way. It seems that Ray is what biographical films get compared to of late, probably due to Foxx’s Oscar win. I haven’t seen Ray, so I can’t make that comparison. What I can say of both Capote and Walk The Line is that it’s been a long time since I saw acting so compelling, so convincing in a film. Capote was incredibly good — Philip Seymour Hoffman does an amazing job with Capote’s voice, ticks and mannerisms, and as such I found him completely believable. I’ve loved Hoffman since his performance opposite De Niro in Flawless, and he did not disappoint.

But Walk The Line was an even more incredible movie experience. Maybe because of the memories associated with Johnny Cash that I brought to the movie. I grew up listening to The Man in Black on 8-Track, lying in front of my dad’s stereo wearing his oversized headphones, blissfully switching between “programs” (for those who never had the joy of a 8-Track, there are 8 audio tracks written to the medium — two tracks (for stereo sound) for 4 “programs”). Joaquin Phoenix doesn’t look much like Cash. There are a few scenes with young Cash and young Elvis touring together (“you want some chili fries?”), and I actually thought Phoenix looked more like I picture Elvis in my mind than the actor playing Elvis, but that’s neither here nor there. Despite the lack of physical similarity, Phoenix was Cash in my mind by the end of the film.

I knew going into the film that both Phoenix and Reese Witherspoon, who plays June Carter[-Cash], had performed their own vocals for the film. From the first time she opened her mouth and sang, Witherspoon convinced me she was a member of the first family of country music. My family used to vacation in Gatlinburg, TN, and Witherspoon’s Carter was exactly how I remember those performers. I was initially disappointed by Phoenix’s vocals — “nice, I thought, but no Johnny.” But as the film progressed I found them more and more convincing. I’m not sure if it was an intentional decision on the part of the filmmakers — I guess it’s reasonable to assume that Cash’s voice and sound matured as his career progressed — or if it was simply due to being drawn in, but by the end of the film, I was convinced that Cash himself was singing.

So I love Johnny Cash, so either this film had a high bar or I was pre-disposed to like it (or perhaps both), but it was satisfying in every sense. It focuses on Johnny’s early career paying particular attention to the years immediately following his signing to Sun Records, through his prescription drug addiction, to his marriage to June Carter. As I said earlier, Witherspoon’s performance as June Carter completely changed my mind about her acting capabilities. It was refreshing to have the view that Witherspoon==Legally Blond challenged; I guess I never considered that she was acting for that film as well. Duh, Nathan.

I had the good fortune of catching the re-air of Johnny Cash and June Carter Cash interviews on Fresh Air yesterday afternoon after seeing the film. I don’t much care for country music these days, but hearing his voice on the radio reminded me just how sad it was when he died in 2003. Hopefully Walk The Line will expose his life and especially his music to a whole new audience who hasn’t heard it before.

date:2005-11-25 08:13:04
wordpress_id:353
layout:post
slug:cold-hard-cash
comments:
category:General

It’s a start…

We’ve been enjoying something of an Indian Summer for the past few weeks here in Indiana. Temps had consistently been in the 50s or 60s, and I only had to break out my winter coat last week. The downside of this is a lack of snow. I enjoy snow skiing, but haven’t taken the opportunity to do it for the past couple years. So I’m really anxious to get out. And with the warm weather, well, the nearby (3 hours-ish) Michigan ski areas haven’t been able to get a base established. So I just checked the ski cam at Bittersweet.

image0

It’s a start. I think I’m the only person I know who sees heavy wet snow as a desirable weather pattern.

date:2005-11-23 09:24:18
wordpress_id:352
layout:post
slug:its-a-start-3
comments:
category:my life

It’s the Pluralism, Stupid

It’s no secret or suprise that I disagree with much of what the current presidential administration puts forward as policy. My family, on the other hand, is “Bush/Cheney” all the way. So I frequently get email missives forwarded to me as part of a large forwarding group, and they’re uniformly pro-Bush, pro-war. It’s not that my family has these opinions that bugs me — it’s the tone of the messages in that they don’t allow for discussion or debate. They don’t allow that people may have valid, differing opinions and still want what’s best for the country. In short, they don’t get that pluralism is a good and necessary thing in a modern society. I’m not saying that Democrats or liberals get it any more than they do — there’s plenty of blame to play the game.

So here’s this morning’s message from my Father, whom I love more each yeah, but with whom I don’t see eye to eye with on many, many things. My comments are inline:

Things that make you think a little: There were 39 combat related killings in Iraq in January. In the fair city of Detroit there were 35 murders in the month of January. That’s just one American city, about as deadly as the entire war-torn country of Iraq.

Interesting. Now does that figure of 39 include Iraqi civilian and military casualties? No? Huh, why not? I know the administration has made noises about not being able to accurately assess the damage, but I call bull shit. Iraq Body Count estimates the current number as falling between 26,982 and 30,380. Wow, that’s a lot Mr. President. How many deaths in Detroit again? So you may dismiss IBC was a “left-wing media outlet” and maybe you’re right. But with no official numbers to compare to, how can we have an informed discussion? In other words, if the IBC is a left-wing outfit, why doesn’t the administration publish it’s own figures as a counterpoint?

Additionally, I think this figure, if it were accurate, would simply call into question our crime prevention efforts in the city of Detroit. Just because the death toll in two places is the same doesn’t make it OK — it just means you have two places that need attention.

When some claim that President Bush shouldn’t have started this war, state the following: a. FDR led us into World War II. b. Germany never attacked us; Japan did. From 1941-1945, 450,000 lives were lost, an average of 112,500 per year. c. Truman finished that war and started one in Korea. North Korea never attacked us. From 1950-1953, 55,000 lives were lost, an average of 18,334 per year.

I think that any thinking person will acknowledge that comparing FDR’s entry to World War II and GWB’s invasion of Iraq is a farce. In the case of WW2, we had been attacked by a foreign power allied with Germany, who had also invaded several other sovereign nations. In the case of Iraq, both tests fail. Despite Vice President Cheney’s statements to the contrary, there has been no credible evidence — ever — that Saddam and bin Laden were allied.

d. John F. Kennedy started the Vietnam conflict in 1962. Vietnam never attacked us.. e. Johnson turned Vietnam into a quagmire. From 1965-1975, 58,000 lives were lost, an average of 5,800 per year.

Yes.

If you expect those who are against the war to view JFK’s entry into Vietnam as an argument in favor of going into Iraq, then more discussion needs to take place than I previously realized. I haven’t heard anyone suggest that Vietnam was a just war as opposed to Iraq which is unjust. I have heard many people suggest that both were and are unjust.

f. Clinton went to war in Bosnia without UN or French consent. Bosnia never attacked us. He was offered Osama bin Laden’s head on a platter three times by Sudan and did nothing. Osama has attacked us on multiple occasions.

I don’t have any knowledge about the second half of this statement, but let me address the first. Clinton entered Bosnia without UN consent because there was evidence of ongoing genocide and ethnic cleansing, something the US has signed a treaty against. That treaty, incidentally, requires all signatories to actively combat genocide, which has had the unintended effect of simply making “genocide” a dirty word in world politics — if you don’t call it that, you don’t have to attack it. If you wanted to make an accurate comparison (or at least more accurate), perhaps Bush should have taken a look at the ongoing tragedy in Darfur.

g. In the years since terrorists attacked us, President Bush has liberated two countries, crushed the Taliban, crippled al-Qaida, put nuclear inspectors in Libya, Iran, and North Korea without firing a shot, and captured a terrorist who slaughtered 300,000 of his own people. The Democrats are complaining about how long the war is taking.

So I’ll give you liberating Afghanistan and “crushing” the Taliban (although given some of the people currently in power in Afghanistan, I have to wonder just how crushed it is). And I’ll even give you inspectors in Libya and their subsequent dismantling of their nuclear program. What I won’t give you is Iran and North Korea. Sure, inspectors have been in and out over the past 5 years. But by refusing to even speak one on one with the North Koreans, the Bush administration has essentially raised it to an all or nothing, “my way or the highway” game. Frankly I think that’s more effective for bar fights than international diplomacy, but then I don’t have much experience with either. Oh wait, Bush didn’t have any experience with the latter. Never mind.

But .. It took less time to take Iraq than it took Janet Reno to take the Branch Davidian compound. That was a 51-day operation. We’ve been looking for evidence for chemical weapons in Iraq for less time than it took Hillary Clinton to find the Rose Law Firm billing records. It took less time for the 3rd Infantry Division and the Marines to destroy the Medina Republican Guard than it took Ted Kennedy to call the police after his Oldsmobile sank at Chappaquiddick. It took less time to take Iraq than it took to count the votes in Florida!!!!

So first I’d like to point out that the last sentence is somewhat misleading — Bush v. Gore settled the election and appointed Bush to the presidency in 2000 before the vote count was complete. I would also point out that after Reno was done with the Davidian compound there were no Davidians using IEDs against our ATF forces, but that would probably just be in bad taste. So I’ll just say this: daily attacks against our troops and Iraqi civilians alike hardly speaks to a “taken” country in my mind.

Oh, and just how long did it take Ted Kennedy to call the police? I’d like to know.

Our Commander-In-Chief is doing a GREAT JOB! The Military morale is high!

I can’t speak to the second sentence, but maybe you could convince me of the first if Bush landed on an aircraft carrier in front of a banner reading “I’M DOING A GREAT JOB!” Oh wait…

The biased media hopes we are too ignorant to realize the facts.

I’m not saying the media is unbiased, but how is it that the discussion always centers around how biased CNN, NPR, etc are, and never FOX “News”? I think people just need to realize that we always see truth in opinions that are in line with our own. And sometimes it’s easier to call something “biased” as opposed to really trying to parse what they’re saying and examine it objectively. Do I watch FOX News? No. But I do read the editorial page of the Wall Street Journal with some regularlity, and while I rarely agree with everything I read there, I think that being informed and considering other view points is an important job of the citizenry.

But Wait. There’s more!

JOHN GLENN (ON THE SENATE FLOOR) Mon, 26 Jan 2004 11:13

Some people still don’t understand why military personnel do what they do for a living. This exchange between Senators John Glenn and Senator Howard Metzenbaum is worth reading. Not only is it a pretty impressive impromptu speech, but it’s also a good example of one man’s explanation of why men and women in the armed services do what they do for a living.

This IS a typical, though sad, example of what some who have never served think of the military.

Senator Metzenbaum (speaking to Senator Glenn): “How can you run for Senate when you’ve never held a real job?”

Senator Glenn (D-Ohio): “I served 23 years in the United States Marine Corps. I served through two wars. I flew 149 missions. My plane was hit by anti-aircraft fire on 12 different occasions. I was in the space program. It wasn’t my checkbook, Howard, it was my life on the line. It was not a nine-to-five job, where I took my tie off to take the daily cash receipts to the bank.”

“I ask you to go with me … as I went the other day… to a veterans’ hospital and look those men … with their mangled bodies in the eye, and tell THEM they didn’t hold a job! You go with me to the Space Program at NASA and go, as I have gone, to the widows and orphans of Ed White, Gus Grissom, and Roger Chaffee… and you look those kids in the eye and tell them that their DADS didn’t hold a job. You go with me on Memorial Day, and you stand in Arlington National Cemetery, where I have more friends buried than I’d like to remember, and you watch those waving flags. You stand there, and you think about this nation, and you tell ME that those people didn’t have a job? What about you?”

You’re right, Metznebaum was out of line to say that of Glenn. But again, just because people are serving honorably doesn’t mean it’s for a just cause. Oh, and about people who never served in the military… ahem, Mr. President.

For those who don’t remember… During W.W.II, Howard Metzenbaum was an attorney representing the Communist Party in the USA. Now he’s a Senator! If you can read this, thank a teacher. If you are reading it in English thank a Veteran. It might not be a bad idea to keep this circulating.

I don’t know lots about Metzenbaum’s history, but I do know one thing: saying someone was an attorney representing the Communist Party is a McCarthy-esque smear tactic. Notice that they don’t actually say he was a Communist, only that he represented the party. Now he may have been a Communist (it’s really irrelevant), but everyone — everyone — deserves representation, even Communists. Those who set themselves up as defenders of strict interpretation of the Constitution would do well to remember that.

What really pisses me off is that people want to set this up as “us against them”. It’s not. This isn’t about what any one political party did that’s worse than what a sitting president did. This is about the current administration’s refusal to take responsibility for their actions. When Cheney blasts Democrats for voting for the war, and now railing against it, he’s right.

But that just means that more people are wrong, not that going to war was the right thing.

If people want to move the country forward, they’ll engage in serious discussion and debate, and not throw done ultimatums and “us v. them” missives. To paraphrase Carville, it’s the pluralism, stupid.

date:2005-11-18 09:24:32
wordpress_id:351
layout:post
slug:its-the-pluralism-stupid
comments:
category:politics

Mobile Development Compared

_*Update:* I’ve posted a follow up here _

I’ve been doing a lot of work in the past week on mobile (more specifically phone) platforms, some by choice and some by dictate. And the two experiences are sort of telling, in my opinion. On one hand my Software Engineering course this semester, CS 360, is designed around a project for an external client. My team’s client is a local software firm that makes municipal management software. Our project is developing an interface for that software for a mobile phone that enables field workers (ie, street department, utilities, etc) and first responders to communicate status and location information to a central dispatch center. The platform imposed is Motorola IDEN phones running J2ME code on the [STRIKEOUT:Nextel]Sprint network. As the lead on design and implementation, I had the responsibility for developing the initial prototype which we demoed to the client yesterday. This minimally functional prototype took no less than 8 hours to hack together. And that’s if you don’t count the time spent fighting the Motorola tools before I gave up and just used Sun’s generic J2ME toolkit for the prototype. It’s not that J2ME is bad per say; there just seem to be a lot of steps that have to happen for an application to work right, and the documentation I happen to have is somewhat lacking.

On the other hand, I chose to do a little bit of mobile development for fun on Saturday & Sunday, when I was procrastinating from working on the J2ME implementation. In this case I decided to finally use my Nokia 6620 Series 60 phone for the purpose I chose it — developing in Python. So I downloaded Nokia’s SDK, sent the runtime over to the phone and started hacking around. In the same amount of time it took me to develop the minimal prototype for J2ME, I completed a full implementation of Sudoku for the Series 60. If you’re not familiar with Sudoku, it’s a logic game from Japan that is my current obsession. So in 8 hours (roughly) I ended up with code that handles drawing the board, responds to user input, saves and loads games, and detects when you win. Oh, and it’s multi-threaded to make the startup speed a little more palitable. I should note that I was aided in the game logic by the excellent gnome-sudoku code (also written in Python), but the code is still far more complex than the J2ME prototype.

So what’s the big difference? Obviously part of it is my relative comfort with Python versus Java. But I don’t think that’s as big a factor as it might have been, say, 6 months ago. I’ve been pretty immersed in Java this semester, from writing multi-threaded simulations for my operating systems class to web applications using J2EE containers and servlets. Additionally, I didn’t even have an emulator for the Series 60, so every time I wanted to test something I needed to send it to the phone via Bluetooth SMS and then install the file, yada, yada, yada. So my gut feeling is that any speed gained from familiarity with Python was probably wasted in the save-sync-install-test cycle.

The most glaring difference is in the quality of documentation. Nokia provides really excellent documentation in the form of PDFs with their Python SDK. This includes a “programming with” guide that discusses some of the common tasks you might want to accomplish as well as an API guide. The Java documentation, while not horrible, seems to be considerably more difficult to find what you want.

The other glaring difference is in the relative complexity of the respective APIs. Nokia has done an excellent job of providing a really simple API for doing GUI operations on the phone. J2ME… well, lets just say I’m not looking forward to implementing my own list box, which I’m going to have to do for the particular GUI idiom the client wants. Of course, the counter argument to the simple API is that J2ME is designed to target multiple types of devices, from phones to Palm handhelds, and the Nokia SDK only targets Series 60 phones. Just because you do more, though, doesn’t mean you have to make life difficult.

I don’t want to make this a “Java is better than Python” argument. It’s not necessarily that. I think it’s more accurately a Nokia versus Motorola argument. Nokia has obviously realized that as people expect devices to do more, their platform will succeed based on developers. And making life easy for developers makes developers write more code for your platform. Even in terms of tools Nokia has made Moto their bitch. Nokia doesn’t provide much in the way of tools for Python — what do you need, really — but for J2ME Nokia provides an Eclipse based environment than, in my limited tests, works really well. Moto provides a really crappy tool that I still haven’t coaxed to build a MIDlet correctly. If I were a commercial developer deciding on a platform, the Motorola IDEN platform would be the first one to get scratched off the list, simply based on tools.

It would be interesting to re-implement my Sudoku game in J2ME for the Series 60, just to compare the two experiences more accurately. Oh, and yes, I’ll be releasing my Sudoku for Series 60 app just as soon as I get a final couple of features implemented.

date:2005-11-17 09:15:30
wordpress_id:350
layout:post
slug:mobile-development-compared
comments:
category:development

Custom Log Formats with Squid

[The first in a series of posts to help me (and hopefully others) remember how to get `Zope <http://zope.org>`_ running behind Squid.]

In a world where lots and lots of tools have been written to analyze Apache httpd logs, it’s a little annoying we can’t use the same tools for Squid, especially if we’re using it to accelerate our website. Luckily the kind folks at Zope Corp have written a handy patch for Squid to enable custom log formats. Unluckily the documentation is, well, a little terse. We wanted to generate Squid access logs in Apache’s “combined” format. So here’s what you do:

  1. Build a patched version of Squid 2.5. The patch is available at http://devel.squid-cache.org/customlog/

  2. Modify squid.conf. In our case we added two lines:

    logformat httpd %>a - %un [%{%d/%b/%Y:%H:%M:%S %z}tl] "%rm %ru" %Hs %&lt;st "%{Referer}>h" "%{User-agent}>h"
    access_log /usr/local/squid/var/logs/combined.log httpd
    
  3. Restart Squid.

For something so simple, its amazing how long you can flounder trying to figure out what needs to be quoted, which direction the greater than or less than signs need to go, etc. Note that in this case we’ve defined an entirely new access_log. Once you’re convinced that the new log is what you want, you can disable the standard one by setting cache_access_log none.

For those who want a different format, the complete list of fields available to the logformat directive is available at http://devel.squid-cache.org/customlog/logformat.html.

date:2005-11-08 09:53:54
wordpress_id:349
layout:post
slug:custom-log-formats-with-squid
comments:
category:General