http://pypi.python.org/pypi/Shapely/1.0.3. This release fixes another operator chaining bug and makes multi-threaded use more safe.
Christopher Schmidt rocks your world.
I continued to think about "mass market geo standards" and standards in general while whipping my yard into shape this past weekend.
The "mass market" thesis is: consumers want or need "x", they can't or don't want to make "x" themselves, and they would rather be ignorant of how "x" is produced. As Ed Parsons put it: "I'd like some cheese ... [but I'd] rather not know how it's made". I won't dispute that there are mass markets for products like paper bags, toilet paper, roller-ball pens, post-it notes, and paperback books. I also won't dispute the fact that people eat a lot of crappy factory cheese food products. These mass markets are a 20th century, first-world phenomenon: an increasingly prosperous middle class with an appetite for goods produced more cheaply on an industrial scale. I don't think mass markets are universal or everlasting. If software or architecture standardization ever worked like this, it won't for much longer.
The internet has changed the nature of interoperation and organization. We're not as dependent on old media and producers as agents of change. People can connect with each other and organize themselves to solve problems. This, of course, is the thesis of Clay Shirky's book: "Here Comes Everybody", and there's abundant supporting evidence in the geospatial domain. Anybody dissatisfied with availability of free and open data can start a community like OpenStreetMap. This is not to say that starting OSM didn't require initiative and hard work, just that there are very few communication hurdles anymore. Anybody who wants to exchange geographic locations via RSS feeds can start a community like GeoRSS. Anybody who wants to discuss alternatives to the OGC's service oriented architecture can start a mailing list like Geo-Web-REST. Anybody who wants to exchange geodata via the JSON format can start a working group like GeoJSON. The designers and developers who want standards can now organize themselves to produce them. Open source, open data, open standards.
By the way: cheese is milk, salt, rennet, microbes, and time. Mix them and wait. Go ask your local artisan cheese maker for the fascinating (no irony here) details.
I noted recently that the Google Maps GeoRSS mapper acts on every location found in a feed. You can exploit this feature to set a map scale independent of the extent of the locations in the feed entries. Add a large bounding box location as a child of the feed, outside any entry:
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" xmlns:thr="http://purl.org/syndication/thread/1.0" > <georss:where> <gml:Polygon> <gml:exterior> <gml:LinearRing> <gml:posList> 0.0 -50.0 70.0 -50.0 70.0 -120.0 0.0 -120.0 0.0 -50.0 </gml:posList> </gml:LinearRing> </gml:exterior> </gml:Polygon> </georss:where> <entry> <id>urn:uuid:7e8ee974-9181-4eae-ad65-55d29175d942</id> <link href="http://example.org/entries/1"/> <title>NCAA Men's Final 2008</title> <summary>UNC-Chapel Hill vs UCLA. San Antonio, TX. 7 April 2008.</summary> <content type="application/xhtml+xml" src="http://example.org/entries/1"/> <georss:where> <gml:Point> <gml:pos>29.422853 -98.493805</gml:pos> </gml:Point> </georss:where> </entry> <entry> <id>urn:uuid:53664db3-4598-45d4-a727-022c6203322e</id> <link rel="related" href="http://example.org/entries/1"/> <thr:in-reply-to ref="urn:uuid:7e8ee974-9181-4eae-ad65-55d29175d942" type="application/xhtml+xml" href="http://www.example.org/entries/1" /> <title>UNC-Chapel Hill</title> <summary>This is the location of the UNC (http://www.unc.edu) campus in Chapel Hill. Related to: http://example.org/entries/1.</summary> <georss:where> <gml:Point> <gml:pos>35.914078 -79.056931</gml:pos> </gml:Point> </georss:where> </entry> <entry> <id>urn:uuid:2528d1b4-b5a9-415c-be69-f83974e3e6af</id> <link rel="related" href="http://example.org/entries/1"/> <thr:in-reply-to ref="urn:uuid:7e8ee974-9181-4eae-ad65-55d29175d942" type="application/xhtml+xml" href="http://www.example.org/entries/1" /> <title>UCLA</title> <summary>This is the location of the UCLA (http://www.ucla.edu) campus in Westwood. Related to: http://example.org/entries/1.</summary> <georss:where> <gml:Point> <gml:pos>34.060623 -118.445663</gml:pos> </gml:Point> </georss:where> </entry> </feed>
and GMaps displays the feed on a map zoomed out to encompass the bounding region specified for the feed.
Compare that to this map of the same feed with the top-level location removed:
I'm thinking this quirk just might be a good practice.
Update (2008-04-6): So much for my finals prediction.
My reward for braving the blustery weather to run yesterday was seeing 3 Osprey, just arrived from their winter range, fishing at the "ponds" (flooded gravel pits) along the Cache la Poudre River. The birds, or their parents, were introduced to the region in 1989: before the construction of reservoirs there was no habitat for Osprey on the eastern slope of the Front Range.
I like Tom's new name for "neogeography" so much that I'm adopting it for my blog tagline.
Looks like Andrew Turner's presentation provided the fresh air that Ed Parsons was enjoying. His material looks great and I'd like to see this reprised someday. Getting a bit of credit at the end is gratifying: I'm proud of the work I've done to introduce some of these ideas to the geospatial community.
Still, I think the "mass market geo standards" concept is bullshit. If anyone can explain how framing architectures and architectural styles as consumer products benefits developers and designers, I'm all ears and eyes.
I was going to use this as an excuse to learn more about Pylons. What I ended up learning is that I don't like Routes, the default Pylons URL dispatcher, and so I just made my own Selector-based app deployable with Paste Deploy. The public read-only repo for Mush is now here.
No joke: I'm loving Vimperator.