Archive for March, 2005

Passing the buck

You can’t avoid hearing about it. Terri Schiavo has passed away; she leaves behind a nation questioning itself and struggling with issues of life and morality. It sounds very dramatic, doesn’t it? Unfortunately, it’s also a travesty of poor governance.

Everyone should learn one thing from the tragedy of this awful feud between the Schindlers, the Schiavos, and the lawyers: sign a living will. Nobody should leave the question of their medical wishes ambiguous, for the sake of their families and their communities.

Enter Congress. Our good Congressmen, charged with debating and enacting the laws by which our great society must live, passed a law. They enacted a bill specifically tailored for Terri Schiavo, and for nobody else, yet this bill did nothing to help her. Congress placed the matter into the hands of a federal court, where it was confirmed that Michael Schiavo was legally capable of removing Terri Schiavo’s feeding tube.

By law, Michael Schiavo is the legal authority on his wife’s will to live. If our esteemed Congressmen were so interested in saving her life, they might have pushed to change this law. Instead, they passed the matter to the courts, with the implicit request that a federal judge rewrite existing medical laws so that Congress wouldn’t have to. The polls have been clear that most Americans do not feel comfortable with Congress getting involved; maybe they thought a court would do what their constituents would never let them get away with.

Senator Bill Frist has been the first, but will not be the last, who has the audacity to publicly attack those judges who refuse to do his dirty work. Rightfully, our nation’s judicial system refused to overstep its bounds as interpreter of the law. Wrongfully, our nation’s political leaders, charged with maintaining the vitality of our written law, are pointing fingers at our judicial system.

Of course, I have my own opinion, but it’s wholly irrelevant. I don’t get to decide Terri’s fate; nobody but her family should. Whether Terri’s parents or Terri’s husband should have decided is a matter of law. Our lawmakers, our elected representatives of the People, have failed to do anything but pass the buck. By shirking responsibility and blaming our nation’s judges for what they themselves have failed to accomplish, Congressmen from across our great land are shaming themselves, and us.

How do we keep an ecosystem of frameworks useful to newcomers?

The first day of Pycon 2005 is wrapping up, and we’re heading to dinner soon. Attending the sprints was a good way to get ramped up before the talks; I think if I hadn’t been breathing Python 24/7 for a few days first, I might not have been able to follow anything.

I won’t comment on everything at once, but of the three web talks I attended, one piqued my interest (WSGI), one was really cool (Donovan’s LivePage/LiveTest/Canvas demonstration), and one struck a chord. Michelle Levesque put together an ongoing project called PyWebOff, comparing major Python web application frameworks from a user’s point of view.

She started off with a very good point: that Googling Python web application framework brings up a laundry list of different frameworks, each with different capabilities, features, strengths and weaknesses, levels of documentation, and sets of assumptions about the average user’s capabilities. To contrast, Googling for Ruby web application framework comes up with one application, Ruby on Rails, which will do nearly everything you want in an elegantly simple way (though not in Python).

So what can we do about web application frameworks? The archetypical beginner, who loves Python for its ease of use but has only ever used PHP (or ASP, or ColdFusion, or CGI) for creating web sites, will probably give up fairly quickly if they get started in the wrong place. Michelle’s assertion that a plethora of choices is confusing is valid, but I question her conclusions. Her talk closed with the argument that we need to slim down the number of Python web frameworks and settle on three “major” frameworks: one for “large” applications, one for “medium” applications, and one for “small” applications. (She also made a plea for nobody to release another web application framework after her talk, which may have some impact, but probably not as much as we’d like.)

It is tempting to cut across the vast number of existing web frameworks and toolkits and broadly classify them. A meme I hear from many people is that they can be divided into “big”, “medium”, and “small”; another is that frameworks are “process-driven”, “thread-based”, and “event-driven”. These are properties, yes, but they are not the only properties which web application developers need to consider.

I think we need a User’s Guide to Python Web Application Frameworks (or something with a slightly better name), to help newbies to Python web programming make sense of the myriad choices available to them. It wouldn’t need to get into the itchy details, but it would need to explain why there are so many frameworks available. Most times that someone reinvented the “web framework” wheel, it’s because they made a conscious design decision to do something differently.

When someone says, I don’t care about the details, I just want to write a web page, that’s a valid position only to a certain degree. Unless you plan on writing plain CGI, you can’t expect to start writing web applications without understanding some of the basic concepts behind these frameworks; you don’t need to know details, but you do need to know why people keep deciding to reinvent the wheel. Choice is good; uninformed choice is dangerous.

I won’t delve into why I think Twisted Web and Nevow are great tools for building web applications, and why I think these tools are much better than tools like CherryPy (even for small applications). That’s personal preference, and I think the Python web application community needs to learn to put personal preferences aside and help newcomers to make their own choices. Otherwise, their choice may very well be Rails.

Two beers at once

Everyone start double-fisting your drinks! Not only is it Saint Patrick’s Day:, an event itself worthy of heavy celebration, but today is the day that UNIX turns 1111111111 seconds old. (Well, not UNIX itself, really, but who needs technicalities when there are beers to be had?)

The world keeps on turning

I haven’t had nearly as much time to spend on my spare projects as I might like. I suppose that’s something every working stiff muses about, but I really do regret not having the time to update this blog, develop Payago to a point that it’s usable, or to tackle my gigantic reading list.

Lately I’ve been going on a gadget spree. I bought a “new computer”: to replace my aging Athlon 1200, a Bluetooth card for my laptop (so I can use my phone as a GPRS modem), and I’m in the process of building a MythTV box. (More on that later.)

I’m also attending PyCon 2005, which should give me some time to stop thinking about work and get some serious coding done. It’ll also be good to meet some Divmod team members and other Twisted users.

However, no matter what I’m doing at work, where I’m traveling, or what side projects I’m not spending enough time on, it’s good to know that some things never change. The RIAA, perpetually clueless, still hasn’t figured out that its old business model is dying (and that its profit margins are dwindling). Its latest move? Pressuring Apple to increase the price of downloadable singles. Some people just don’t get it.