Saturday, February 25, 2006

Thank you, readers

This is just a quick note to say thanks to all of my faithful readers who took a moment in the last couple of days at PyCon to say hello and mention that you enjoyed reading my non-Python articles as well as the others. I really appreciated your feedback, your encouragement and your being a sounding board for some of my latest ideas. So thank you, all of you.

Friday, February 24, 2006

Laptop, Interrupted

Well, I finally made it to PyCon, and got this new laptop set up well enough to use. The old one was broken yesterday on arrival at the D/FW airport, when a rental car bus driver decided to start the bus moving while my wife and I were still putting our luggage in the racks. The driver started and stopped several times, even though all the passengers were yelling for him to hold on. (Indeed, we had barely stepped inside when he started the bus moving.) In the process, my wife tripped and fell backwards, and I literally dropped everything to dive under and break her fall, supporting her back and head so she wouldn't hit the floor. It wasn't until we got to our hotel and tried to use the laptop that we discovered the screen was broken, except for a small, irregularly shaped area.

So now I'm using a replacement, but it still feels quite awkward. No Python, no Cygwin, no jEdit, no IRC... it hardly seems like having a computer at all. For some reason, the Cygwin setup program insists that it can't find the mirrors list, so I can't seem to download it. Ugh. I think I may end up just trying to network this machine with the old one and then copying over huge blocks of stuff. No telling how Cygwin will feel about that, though.

Friday, February 10, 2006

10% more usability = twice the users

There's a saying that says if you improve a product's usability by 10%, you'll end up with twice as many people who can use your product. (I thought this saying came from Joel On Software, but if so I can no longer find it.)

Anyway, the undocumented corollary of this saying is that if your product is only 90% finished, but early publicity doubles your userbase, you are going to be swamped with complaints about that missing 10%. :)

A case in point: setuptools. A couple of days ago, Joe Gregorio blogged that Python library developers shouldn't use it, partly because of some installation issues he ran into. I wrote Joe back privately, to make sure I understood the issues, and also to make sure he knew where to find the documentation that would've resolved the issues he encountered.

But Joe's just the canary in the mine shaft, so to speak, and his song is just the warning that, like it or not, setuptools has gone well past its early "alpha" audience, and it needs to go into beta as soon as possible. And that means cleaning up those 10% "fit-and-finish" issues like the ones he encountered. So what else could I do? I bumped down the priority on other new features for setuptools, and got started on fixing Joe's problems.

So, I'm happy to announce that setuptools in SVN now supports --prefix and "traditional" PYTHONPATH setups right out of the box. Unlike previous versions, it now supports arbitrary PYTHONPATH install targets without needing any special setup. Just make sure the target directory is on PYTHONPATH at install time and runtime, and away you go.

Currently, you can only get this version from SVN, but I'd appreciate testing and feedback. This version also has some hopeful fixes for /usr/lib64 issues on 64-bit Linux, and a lot of other odds and ends. I hope to release an official 0.6a10 version soon (maybe tomorrow?), and maybe an 0.6b1 by PyCon.

A big thanks to everyone who helped me figure out solutions to the problems, provided feedback (even of the complaining kind) and otherwise participated in the process of getting setuptools to where it is today.

(P.S. This post is not intended to imply that setuptools is now finished, only that I hope its usability is now caught up to the size of its current audience, and maybe a little beyond.)

Tuesday, February 07, 2006

web.py: makes (bold claims about) web apps

I'm not sure how I feel about web.py using my name and a quote out of context as an endorsement. On the one hand, they at least include a link to the original context, but on the other, they make my faint praise look much more positive than it was. My original comment pointed out various issues with e.g. its SQL quoting implementation, and also noted that "it's about as far away as possible from something I would write." While I'm flattered that they thought me worth using in this way, I probably would've been just as flattered if they'd quoted me saying "it's about as far away as possible from something I or Jim Fulton would write", and it arguably might be a better endorsement than the bits they actually quoted. :)

I doubt it's a malicious misquoting, however. They also quoted Guido, including both his positive comment and his giving it an "F" for undocumented code and excessive magic.

It still bothers me a little bit that the quote makes it look like I endorse web.py, especially since they tacked on the fact that I'm the creator of WSGI. I try very hard to stay framework-neutral in my official capacity (such as it is). To be perfectly clear, I don't endorse any particular framework as the be-all end-all of web programming. I believe that Python probably has the greatest diversity of novel web programming paradigms of any programming language, and this rich legacy is a treasure to be preserved -- even as frameworks consolidate over time. It should not be lightly discarded for whatever the flavor of the month is.

As such, I found the inflammatory rhetoric and unabashed advocacy in the comments on Guido's blog to be embarrassingly petty -- especially since a lot of them were from people whose frameworks aren't really offering much (capability-wise) that other Python frameworks haven't been doing for years.

To a large extent, the newest wave of Python web frameworks are more about developer-friendliness than about innovation per se. And I have nothing against that, but sometimes I worry that it's like working on the cupholders when we haven't got fuel injection figured out yet. On the other hand, I suppose everybody already knows they'd like a cupholder, without needing a lot of explanation why it'd be a good idea to have one. Some things just "sell" better than others, due to their obviousness. A fact of life, but occasionally a frustrating one.