Another Sweet Google Tool

Three events recently converged to respark my interest in a little mini-project I tried to do some time ago:

(1) At yesterday’s Python subgroup meeting of The Hacker Within, our resident Pythonista got me all excited about developing easy web applications in that language. I write a lot of Python for pre- and post-processing of nuclear fuel cycle systems data, but I’ve never done any web-related Python work except for fixing a bug or two in some Trac instances. Nico got me pumped about the prospect.

(2) I started helping the Diocese of Milwaukee with their new Website, for which we’re using Google Sites in an attempt to improve the ease of collaboration and maintenance. I think Google Sites is pretty terrific, but it does have some limitations, and I’m interested in identifying some Google-compatible solutions. The Python-based Google App Engine seems like a promising direction.

(3) My friend Ryan re-activated pangramaday, which I’ve mentioned here before and is now available via Twitter (@pangramaday).

As it did during my short-lived interest in learning to develop Java Applets, the pangramist’s quandary motivated a little mini-project a few steps more complex than Hello, World! and perfect for learning a new set of interfaces. And this time I can actually publish the result (such as it is), because the Google App Engine framework is just so frickin’ easy to use.

So if for pangram-, crossword- or Wheel-of-Fortune-related purposes you ever need a list of words that all contain some given collection of letters, look no further than pangramhelper. It’s currently both ugly and slow, but if my interest in learning these APIs doesn’t wane too much, that may change.

It’s actually kind of fun to enter random (or not so random–can you tell I’m getting ready for the Easter Vigil?) letters and see what you get:

You wrote:

Christos anesti

We found:

anchorites
characterizations
chlorinates
cinematographers
interscholastic
orchestrating
orchestration
orchestrations
overenthusiastic
rhetoricians
stenographic
theoreticians
thermodynamics

It only took a few hours and about a hundred lines of Python (and most of those are just longhand HTML inside of function calls). Seriously, check out the App Engine.

The Difference Is Maintainability

So I write a lot of Python, and one of the claims promoters of the language usually make is that it helps you write more maintainable code. I think they’re right in that claim, and I think they’re right to stress the centrality of the issue.

We’ve discovered over the years at St. Francis House (and in my research group, for that matter, and at Wisconsin Engineer, if I remember correctly) that maintainability is also essential–and difficult–on the Web (of course, this is really just another kind of source-code-maintenance problem). In a high turnover organization, it’s especially hard to cultivate a continuous Web presence.

Say what you will about the low-powered solution offered by Google Sites, I think they’re on to something, and I’m super-excited that we’ve ported the St. Francis House website over to this system. Sure, I wish it were a little more flexible and powerful. But I think you’ll agree that it lets you construct reasonably attractive and well organized sites (nearby St. Andrew’s uses the system as well), and I can attest to the relative ease of use over other options (and I like screwing around with webpages and have learned a lot about XHTML/CSS in preparation for taking over for the semester as editor of this site about engineering education). Most importantly, no FTP or SCP is required (we computer geeks take these tools for granted, but I think they can be just as much a barrier as HTML).

I think Google’s got another winner here, at least for a presumably significant market niche (groups who want a good site but can’t afford to pay professionals, especially for maintenance and updating). I’ll keep you posted as to whether the feature-set improves in the coming months.