<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14903426</id><updated>2012-01-25T14:55:47.407-08:00</updated><category term='technology'/><category term='jts'/><category term='sardonic'/><category term='openlayers'/><category term='postgresql'/><category term='javascript'/><category term='foss4g2007'/><category term='tired'/><category term='build vs buy'/><category term='lawyers'/><category term='introversion'/><category term='iso'/><category term='rdbms'/><category term='open source'/><category term='1.4.0'/><category term='proprietary software'/><category term='sprint'/><category term='outsourcing'/><category term='it'/><category term='with recursive'/><category term='buffer'/><category term='regression'/><category term='snark'/><category term='mapserver'/><category term='osgeo'/><category term='opengeo'/><category term='cathedral'/><category term='nosql'/><category term='cio'/><category term='evil'/><category term='wfs'/><category term='rant'/><category term='fcuk'/><category term='business'/><category term='udig'/><category term='mysql'/><category term='vendor'/><category term='ogc'/><category term='wkb'/><category term='where'/><category term='postgis'/><category term='industry'/><category term='geometry'/><category term='grass'/><category term='fgdb'/><category term='opengis'/><category term='google earth'/><category term='qgis'/><category term='svr'/><category term='common sense'/><category term='isvalid'/><category term='foocamp'/><category term='architecture'/><category term='esri'/><category term='management'/><category term='recursion'/><title type='text'>Paul Ramsey</title><subtitle type='html'>Open source geospatial opinions and techniques, seen from the trenches and from far far above...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default?start-index=101&amp;max-results=100'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>366</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14903426.post-708437459618325200</id><published>2012-01-03T11:41:00.000-08:00</published><updated>2012-01-03T11:41:08.873-08:00</updated><title type='text'>Twice as Dirty (and now with more Shame!)</title><content type='html'>For all those Americans, who think your political culture is uniquely corrupt or tarnished by money or special interests, I give you, direct from Canada, in all its astroturfing glory, "Ethical Oil".&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://www.ethicaloil.org/"&gt;http://www.ethicaloil.org/&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;My favorite part is the donation area, "Please consider making a $5, $10 or $15 donation..." because of course ethicaloil.org relies "on small donors like you to sustain our grassroots advocacy". They won't take money "from foreign corporations, foundations, governments, or lobbyists", so it's a good thing there's lots of money available from &lt;b&gt;CANADIAN&lt;/b&gt; corporations, foundations and lobbyists.&lt;br /&gt;&lt;br /&gt;I took the kids to school this morning after reading &lt;a href="http://pricetags.wordpress.com/2012/01/03/a-bad-case-of-scenarios/"&gt;this&lt;/a&gt; and especially &lt;a href="http://www.grist.org/climate-change/2011-12-05-the-brutal-logic-of-climate-change"&gt;this&lt;/a&gt; so my tolerance for people who think time-shifted mass murder is &lt;b&gt;ETHICAL&lt;/b&gt; is a little lower than usual today.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-708437459618325200?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/708437459618325200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=708437459618325200' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/708437459618325200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/708437459618325200'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2012/01/twice-as-dirty-and-now-with-more-shame.html' title='Twice as Dirty (and now with more Shame!)'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2900509213686872074</id><published>2011-12-16T10:30:00.000-08:00</published><updated>2011-12-16T10:30:43.886-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vendor'/><category scheme='http://www.blogger.com/atom/ns#' term='it'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='cio'/><category scheme='http://www.blogger.com/atom/ns#' term='svr'/><title type='text'>SVR #2</title><content type='html'>Hello, all my dark minions in the consulting industry!!! Have you ever low-bid a contract, knowing that once you got deep into it, the client would be as professionally invested in the success of the project as you, and would carry the can back to management for more funding? Come on, chums, you can be honest with me, didn't we row together at Oxford?&lt;br /&gt;&lt;br /&gt;Sadly, our old mates at Oracle &lt;a href="http://www.techworld.com.au/article/410298/university_accuses_oracle_extortion_lies_rigged_demo_lawsuit"&gt;got their hands caught in the cookie jar&lt;/a&gt; recently. They thought they were building a strategic vendor relationship with Montclair State University. Everyone was friends, all pulling together for success, and then some loser decided to knife them in the back instead of being chums!&lt;br /&gt;&lt;blockquote&gt;"When issues arose during the course of the project, it became clear that MSU's leadership did not adequately understand the technology and the steps necessary to complete the project," [Oracle] stated. "Instead of cooperating with Oracle and resolving issues through discussions and collaboration, MSU's project leadership, motivated by their own agenda and fearful of being blamed for delays, escalated manageable differences into major disputes."&lt;/blockquote&gt;Right ho! Instead of "cooperating" and "resolving through discussions and collaboration" (oh! and an extra $15M!) they created a major dispute. Bollocks! It's this kind of unfriendliness and lack of trust that can turn a super strategic friendship and awesome partnership relationship into a garden variety contractual business arrangement, and who wants one of those?!?&lt;br /&gt;&lt;br /&gt;And, to add to the betrayal, I guess someone at MSU used to work in the consulting industry (zounds!) &lt;br /&gt;&lt;blockquote&gt;"This is a textbook example of how to file a legal action against a vendor for failure to deliver," said analyst Ray Wang, CEO of Constellation Research, who reviewed the updated complaint on Wednesday.&lt;br /&gt;&lt;br /&gt;MSU made some smart moves to protect itself, such as documenting all conversations and interactions with Oracle, and working out an escalation procedure in the event the project ran into problems. It also was wise to use real-life use cases for the demonstrations, Wang added.&lt;/blockquote&gt;&lt;br /&gt;I'm glad I live in a jurisdiction where &lt;a href="/2011/12/svr.html"&gt;clients and vendors know how to get along&lt;/a&gt;.&lt;/br&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2900509213686872074?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2900509213686872074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2900509213686872074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2900509213686872074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2900509213686872074'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/12/svr-2.html' title='SVR #2'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total><georss:featurename>Victoria, BC, Canada</georss:featurename><georss:point>48.4286111 -123.3655556</georss:point><georss:box>48.407538599999995 -123.4050376 48.4496836 -123.32607359999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-561693650485025085</id><published>2011-12-16T08:30:00.000-08:00</published><updated>2011-12-16T08:30:01.312-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vendor'/><category scheme='http://www.blogger.com/atom/ns#' term='it'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='cio'/><title type='text'>SVR</title><content type='html'>I find much to love in the BC CIO's "&lt;a href="http://www.cio.gov.bc.ca/local/cio/about/documents/it_strategy.pdf"&gt;IM/IT Enablers Strategy v1.5 for Citizens @ the Centre: B.C. Government 2.0&lt;/a&gt;" (well, perhaps not the name!) but there is one section that chills me to the core: Strategic Procurement.&lt;br /&gt;&lt;br /&gt;At the heart of "strategic procurement" is the "strategic vendor relationship" (SVR), wherein "enhancing the government's relationship with &lt;b&gt;key vendors&lt;/b&gt; [emphasis mine] will lead to more agility in responding to new needs, or making full use of emerging technologies". What part of working with "key vendors" enhances government's power in the vendor/customer relationship? Where do market forces come into play? &lt;br /&gt;&lt;br /&gt;How will we know which vendors are strategic and which ones are a waste of our time? Will we play golf with them? And those non-strategic vendors, what of them? Do they get to play golf too?&lt;br /&gt;&lt;br /&gt;Verily, there is only one place this leads, and the name of the beast is "Master Standing Agreement", or more colloquially, the "[HP|IBM|Accenture] Always Gets a Piece Act". The same actors will be arranged in the marketplace, but the small ones will only get to access work via large ones, who will always get a (the most) lucrative piece.&lt;br /&gt;&lt;br /&gt;It's nice that the BC IT bureaucracy is coming to grips with its co-dependent relationship with the big consultancies, but unfortunate that the reaction is to formalize co-dependence as &lt;em&gt;desirable&lt;/em&gt; in the master strategic plan.&lt;br /&gt;&lt;br /&gt;&lt;small&gt;(Note to readers: I've heard talk of a "vendors solutions center" or something like that floating around, anyone have any links or documents they can share?)&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;This (and everything else, it seems) reminds me my favourite technology joke, from circa 1995: How many Microsoft engineers does it take to change a lightbulb? None, Bill Gates just declares darkness to be the new standard.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-561693650485025085?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/561693650485025085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=561693650485025085' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/561693650485025085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/561693650485025085'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/12/svr.html' title='SVR'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total><georss:featurename>Victoria, BC, Canada</georss:featurename><georss:point>48.4286111 -123.3655556</georss:point><georss:box>48.407538599999995 -123.4050376 48.4496836 -123.32607359999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3327037299907908686</id><published>2011-12-15T09:09:00.000-08:00</published><updated>2011-12-15T09:58:27.429-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fcuk'/><category scheme='http://www.blogger.com/atom/ns#' term='lawyers'/><category scheme='http://www.blogger.com/atom/ns#' term='it'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='cio'/><title type='text'>F*ck You. Pay Me.</title><content type='html'>I really enjoyed Mike Monteiro's talk, "&lt;a href="http://vimeo.com/22053820"&gt;F*ck you. Pay me.&lt;/a&gt;" and it curiously fits into my current writing jag: finding value in your "cost centers". &lt;br /&gt;&lt;br /&gt;The curse of IT is that it is a cost center, not a profit center. This is true even for an internet company like Amazon &amp;mdash; the profit is in selling those damn books not in running the web site (OK, not true anymore, with &lt;a href="http://aws.amazon.com/"&gt;Amazon Web Services&lt;/a&gt;, Amazon is actually monetizing IT directly now, but cut me some slack here).&lt;br /&gt;&lt;br /&gt;As a cost center, the only way IT can directly contribute to the bottom line is to reduce costs. And if IT is managed in a silo, separate from line business (or worse, outsourced), things can go seriously sideways. Reduced services and responsiveness from IT can reduce effectiveness or hamstring line business areas that do generate profits. In chemistry terms, IT is not the reactant, it's the catalyst, but it's still critical to generating the reaction!&lt;br /&gt;&lt;br /&gt;What does this have to do with Mike's profane little talk? One of his main points is that, in running his creative business, his legal advisor has been &lt;i&gt;absolutely critical&lt;/i&gt;. As Mike says (pointing to his lawyer) "&lt;b&gt;this guy makes me money&lt;/b&gt;". Well, no, taking the narrow view, the lawyer only ever receives money, he never gives it back. But in the global view, looking at all the money the company didn't lose due to bad contracts, or due to broken customer relationships, or due to misunderstandings of obligation, Mike's lawyer has generated far more value than he has billed out. He's a quiet profit center.&lt;br /&gt;&lt;br /&gt;If you treat it right, IT can do that too.&lt;br /&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3327037299907908686?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3327037299907908686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3327037299907908686' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3327037299907908686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3327037299907908686'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/12/fck-you-pay-me.html' title='F*ck You. Pay Me.'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total><georss:featurename>Victoria, BC, Canada</georss:featurename><georss:point>48.4286111 -123.3655556</georss:point><georss:box>48.407538599999995 -123.4050376 48.4496836 -123.32607359999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4107370449596241803</id><published>2011-12-14T09:50:00.000-08:00</published><updated>2011-12-14T09:51:36.264-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='build vs buy'/><category scheme='http://www.blogger.com/atom/ns#' term='it'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='cio'/><title type='text'>More In House</title><content type='html'>Hot on the heels of &lt;a href="http://blog.cleverelephant.ca/2011/12/do-it-in-house.html"&gt;my post&lt;/a&gt; about doing work in house, InfoWorld's &lt;a href="http://www.infoworld.com/print/181268"&gt;Deep End&lt;/a&gt; column takes a look at &lt;a href="http://www.infoworld.com/print/181268"&gt;build-vs-buy&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;Relying solely on support contracts and generic solutions is a good way to self-limit the agility and performance of any business. In short, more gurus equals less hand-wringing and stress all around.&lt;/blockquote&gt;In an era when &lt;a href="http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html"&gt;software is eating the world&lt;/a&gt;, information agility is key to competitiveness (or, in government terms, "effective service delivery"), when competitors are &lt;a href="http://www.forbes.com/sites/venkateshrao/2011/12/05/the-rise-of-developeronomics/"&gt;investing heavily in brain power&lt;/a&gt;, why would any organization dumb itself down?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4107370449596241803?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4107370449596241803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4107370449596241803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4107370449596241803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4107370449596241803'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/12/more-in-house.html' title='More In House'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total><georss:featurename>Victoria, BC, Canada</georss:featurename><georss:point>48.4286111 -123.3655556</georss:point><georss:box>48.407538599999995 -123.4050376 48.4496836 -123.32607359999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-650877850848006398</id><published>2011-12-07T09:33:00.001-08:00</published><updated>2011-12-07T11:19:44.443-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outsourcing'/><category scheme='http://www.blogger.com/atom/ns#' term='it'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Do It In House</title><content type='html'>This morning, I was struck by &lt;a href="http://geospatial.blogs.com/geospatial/2011/12/au-hungarian-state-railways-geolocates-135-million-objects-to-5-cm-precision-in-14-months.html"&gt;this nice write-up&lt;/a&gt; about how the Hungarian railway accurately geo-located and inventoried their assets:&lt;br /&gt;&lt;blockquote&gt;The work was done entirely by MAV employees which made it much less expensive than if external contractors would have had to have been used.  Overall it is estimated that as a result of using internal resources and a GPS/GLONASS-based approach the project was 16 times more efficient than a traditional survey.  And the project generated a lot of pride among MAV employees who carried out the work because it was such a remarkable achievement from a data collection, management and quality perspective.&lt;/blockquote&gt;Here's is an incredibly stupid thing for a consultant to say, but nonetheless: &lt;b&gt;if you can do it in house, why wouldn't you?&lt;/b&gt; Even if it's a bit of a stretch, your in house resources:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;have a predictable cost structure&lt;br /&gt;&lt;/li&gt;&lt;li&gt;already understand your core business&lt;br /&gt;&lt;/li&gt;&lt;li&gt;have a feel for the historical reasoning behind business processes&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;New IT infrastructure is strategic almost by definition. Why would you outsource your most important strategic initiatives? If you're anticipating failure, perhaps it's a good idea. But if you succeed, you've just invested in building intellectual capital in a population of people outside your organization. And you've lowered the engagement of your core staff in the future of the organization.  &lt;br /&gt;&lt;br /&gt;Familiarity breeds contempt, and it's all too common that management is most contemptuous of the people they are most familiar with: their own staff. Hence the lure of the shiny consultant (love me! I'm shiny!).&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-650877850848006398?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/650877850848006398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=650877850848006398' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/650877850848006398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/650877850848006398'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/12/do-it-in-house.html' title='Do It In House'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total><georss:featurename>Victoria, BC, Canada</georss:featurename><georss:point>48.4286111 -123.3655556</georss:point><georss:box>48.407538599999995 -123.4050376 48.4496836 -123.32607359999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8914858726545510972</id><published>2011-11-25T09:20:00.000-08:00</published><updated>2011-11-25T09:20:00.056-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgeo'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><title type='text'>2012 Code Sprint</title><content type='html'>One of the nerdy highlights of my year is the always the annual North American code sprint (previously held in &lt;a href="http://wiki.osgeo.org/wiki/Toronto_Code_Sprint_2009#Recaps"&gt;Toronto (2009)&lt;/a&gt;, &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010#Recaps"&gt;New-York (2010)&lt;/a&gt; and &lt;a href="http://wiki.osgeo.org/wiki/Montreal_Code_Sprint_2011#Announcements.2C_News.2C_Recaps"&gt;Montreal (2011)&lt;/a&gt;). It started out as a MapServer, C-Tribe kind of thing, but has also had participants from the OpenLayers and GeoServer community too. Basically, if you have an open source geoproject and a team of more than one, the sprint is an excellent opportunity to get face time and serious progress under your belt.&lt;br /&gt;&lt;br /&gt;This year, &lt;a href="http://wiki.osgeo.org/wiki/IslandWood_Code_Sprint_2012"&gt;the sprint is on Bainbridge Island&lt;/a&gt; near Seattle and the nature of the venue (all inclusive, room, board, meeting space) means pre-registration is de riguer. So if you're coming, please &lt;a href="http://wiki.osgeo.org/wiki/IslandWood_Code_Sprint_2012#Registration.2C_Participant_Costs"&gt;register now&lt;/a&gt;. &lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8914858726545510972?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8914858726545510972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8914858726545510972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8914858726545510972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8914858726545510972'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/11/2012-code-sprint.html' title='2012 Code Sprint'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total><georss:featurename>406 Simcoe St, Victoria, BC V8V 2E3, Canada</georss:featurename><georss:point>48.416897321066315 -123.37646484375</georss:point><georss:box>48.39582232106631 -123.41594684375 48.43797232106632 -123.33698284375</georss:box></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4682081615925154333</id><published>2011-11-14T14:25:00.000-08:00</published><updated>2011-11-14T16:44:47.389-08:00</updated><title type='text'>Federal NDP Leadership Poll</title><content type='html'>The Federal NDP is in a leadership race, which means that candidates who have paid their entrance fee have access to the membership list, some 100,000 Canadians like myself. As a political observer and data fiend, who had access to such a list myself &lt;a href="/2011/01/we-interrupt-this-geeky-spring.html"&gt;only this spring&lt;/a&gt;, I love watching to see how people make use of it: do we get the standard policy screed, the informative candidate-is-visiting message, or something more devious... like the below!So, an email arrives stating:&lt;blockquote&gt;Dear Member of NDP,&lt;br/&gt;&lt;br/&gt;I would really appreciate your participation in a study we’re currently conducting amongst members of the federal NDP.&lt;br/&gt;&lt;br/&gt;I recognize that you’re busy, so this survey is very straightforward and can easily be completed online at your convenience, in about 15 minutes. Please complete the survey before Tuesday November 15th.&lt;br/&gt;&lt;br/&gt;All information provided by respondents will be kept strictly confidential and used only for legitimate research purposes. Study sponsors will not have access to your name, address or phone number.&lt;br/&gt;&lt;br/&gt;To begin the survey, simply click on the link below. If your email does not support hotlinks, copy and paste the link into your browser.&lt;br/&gt;&lt;br/&gt;http://...omitted...&lt;br/&gt;&lt;br/&gt;If you encounter any problems, please contact me at the e-mail address below.&lt;br/&gt;&lt;br/&gt;Thank you in advance for participating in our survey.&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;&lt;br/&gt;Agnes Klich&lt;br/&gt;Project Management Team Leader&lt;br/&gt;klich@logitgroup.com&lt;/blockquote&gt;The fact that they &lt;b&gt;have the NDP membership list&lt;/b&gt;, and the content of the poll, lead me to believe it is associated with a leadership campaign in some way. But it's been done anonymously. The campaign that has done this both (a) gets the data and (b) pretty much ensures that anyone else trying the same gambit will get a much lower response rate. The poll itself is very long, I wonder how many full responses they get? I also wonder if there will be any blowback for using the list in this way? Based on the content of the poll, which campaign do you think is behind it? If the answer seems obvious, and you think there will be blowback, could the poll in fact be the product of a different campaign? Ain't politics grand?&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; Just to leave no stone unturned, I asked the researcher who commissioned the study, but the answer is not illuminating:&lt;blockquote&gt;The Logit Group is a Gold Seal Member Agency of the Marketing Research and Intelligence Associaton (MRIA), Canada's governing body for all market research firms.  As such, we conform to all regulations related to privacy and confidentiality. In this instance, the organization that provided us with member lists required that the survey be completed in a confidential, or "blind" method (whereby the survey sponsor was not identified at the outset).  In return, the responses of individual members (such as yourself) would not be attributed to you specifically when reported back (survey findings would only be provided in aggregate form).&lt;/blockquote&gt;&lt;p&gt;&lt;hr/&gt;&lt;p&gt;Which language would you prefer to complete this survey in? Dans quelle langue préférez-vous répondre à ce sondage?&lt;ul&gt; &lt;li&gt;English / Anglais &lt;li&gt;French / Français&lt;/ul&gt;&lt;p&gt;We are interviewing members of the NDP. Are you a member of this party?&lt;ul&gt; &lt;li&gt;Yes &lt;li&gt;No&lt;/ul&gt;&lt;p&gt;How long have you been a member of the NDP?&lt;ul&gt; &lt;li&gt;Less than 1 year &lt;li&gt;1 to 2 years &lt;li&gt;2 to 5 years &lt;li&gt;5 to 10 years &lt;li&gt;10 to 15 years &lt;li&gt;15 to 20 years &lt;li&gt;Over 20 years  &lt;/ul&gt;&lt;p&gt;And in which province do you currently reside?&lt;ul&gt; &lt;li&gt;Alberta &lt;li&gt;British Columbia &lt;li&gt;Manitoba &lt;li&gt;New Brunswick &lt;li&gt;Newfoundland &amp; Labrador &lt;li&gt;Nova Scotia &lt;li&gt;Ontario &lt;li&gt;Prince Edward Island &lt;li&gt;Quebec &lt;li&gt;Saskatchewan &lt;li&gt;Yukon &lt;li&gt;Northwest Territories &lt;li&gt;Nunavut &lt;/ul&gt;  &lt;p&gt;Are you...&lt;ul&gt; &lt;li&gt;Male &lt;li&gt;Female  &lt;/ul&gt;&lt;p&gt;Were you active for the NDP in the last federal election in May, 2011? (As a candidate, campaign worker, fundraiser, etc.)&lt;ul&gt; &lt;li&gt;Yes &lt;li&gt;No  &lt;/ul&gt;&lt;p&gt;As you may know, a leadership campaign has been scheduled for March 2012. Each member of the NDP will be eligible to cast a vote for their choice of leader.&lt;p&gt;As far as you know today, are you likely to be voting in this leadership election?&lt;ul&gt; &lt;li&gt;Yes &lt;li&gt;No &lt;li&gt;Not Sure / Depends  &lt;/ul&gt;&lt;p&gt;Thinking about the next federal election, do you think the NDP will win more seats, will win fewer seats or will win the same number of seats as it has currently?&lt;ul&gt; &lt;li&gt;Win more seats &lt;li&gt;Win fewer seats &lt;li&gt;Win same number of seats &lt;li&gt;Don't know  &lt;/ul&gt;&lt;p&gt;How confident are you that with a new leader, the NDP can defeat Stephen Harper in the next federal election and take over government?&lt;ul&gt; &lt;li&gt;Very confident &lt;li&gt;Somewhat confident &lt;li&gt;Not very confident &lt;li&gt;Not at all confident  &lt;/ul&gt;&lt;p&gt;How much do you think the NDP's chances of defeating Stephen Harper depends on who is selected as the new leader?&lt;ul&gt; &lt;li&gt;Depends a great deal &lt;li&gt;Depends somewhat &lt;li&gt;Depends a little &lt;li&gt;Does not depend at all  &lt;/ul&gt;&lt;p&gt;When you think about the federal NDP as a whole, where would you describe yourself in your own political thinking relative to the party?&lt;ul&gt; &lt;li&gt;Far to the right &lt;li&gt;Moderately to the right &lt;li&gt;In the centre &lt;li&gt;Moderately to the left &lt;li&gt;Far to the left  &lt;/ul&gt;&lt;p&gt;Some people say that they would like to know where each of the leadership candidates stand and want them to spell out in detail the policy direction they want to take the party in.&lt;p&gt;Others say that they don't want the candidates to present detailed policy because the party members and caucus should have a say in the party's future direction after the leadership campaign.&lt;p&gt;Which of these two points of view best represents your own thinking?&lt;ul&gt; &lt;li&gt;Want to know details &lt;li&gt;Party members should decide &lt;li&gt;Don't know / Not sure  &lt;/ul&gt;&lt;p&gt;Each political party has an establishment: a group of people who have been important to, and actively involved with, the party for some time either provincially, federally or both. What is your impression of the establishment of the NDP? Is it very favourable? Somewhat favourable? Somewhat unfavourable? Very unfavourable?&lt;ul&gt; &lt;li&gt;Very favourable &lt;li&gt;Somewhat favourable &lt;li&gt;Somewhat unfavourable &lt;li&gt;Very unfavourable  &lt;/ul&gt;&lt;p&gt;Do you consider yourself to be a member of the NDP establishment?&lt;ul&gt; &lt;li&gt;Yes &lt;li&gt;No &lt;li&gt;Don't know  &lt;/ul&gt;&lt;p&gt;There has been some discussion about whether the NDP should at some point discuss a relationship or merger with the Liberal Party and the federal level in order to unite the centre left of the political spectrum. What would be your opinion of a move to discuss such a relationship or merger at some point in time? Would you be strongly in favour? Somewhat in favour? Somewhat against? Strongly against?&lt;ul&gt; &lt;li&gt;Strongly in favour &lt;li&gt;Somewhat in favour &lt;li&gt;Somewhat against &lt;li&gt;Strongly against &lt;/ul&gt;  &lt;p&gt;As you may know, one of the leadership candidates is proposing that wealthier Canadians should pay more in taxes. Would this make it more or less likely that you would support a candidate who proposed this, or would it make no difference in your support?&lt;ul&gt; &lt;li&gt;More likely &lt;li&gt;Less likely &lt;li&gt;Makes no difference  &lt;/ul&gt;&lt;p&gt;One of the policy issues being debated these days is the creation of a carbon tax for individuals and corporations who use hydrocarbon fuels and the use of rewards for those who reduce their carbon usage. Would you be strongly in favour, somewhat in favour, somewhat against or strongly against the NDP supporting the introduction of a carbon tax?&lt;ul&gt; &lt;li&gt;Strongly in favour &lt;li&gt;Somewhat in favour &lt;li&gt;Somewhat against &lt;li&gt;Strongly against &lt;/ul&gt;  &lt;p&gt;Different people have been telling us that they are looking for various things in the next leader.&lt;p&gt;From your own personal point of view, how important is it that the leader you choose ... (READ EACH OF THE FOLLOWING STATEMENTS) ... ? Is it extremely important, very important, somewhat important, not very important or not important at all? (REPEAT FOR EACH STATEMENT)&lt;ul&gt; &lt;li&gt;Be closest ideologically to yourself      &lt;li&gt;Be able to work with, and appeal to, the members of the party and the electorate in Quebec      &lt;li&gt;Be someone who will be able to put together the best possible campaign team      &lt;li&gt;Be someone who will provide the party with much the same direction as Jack Layton      &lt;li&gt;Be someone who understands the concerns of your province      &lt;li&gt;Be someone who will provide the party with a new direction      &lt;li&gt;Be able to hold the party together      &lt;li&gt;Be a currently elected MP      &lt;li&gt;Be impeccably bilingual in English and French      &lt;li&gt;Have experience in government      &lt;li&gt;Be someone who has been a long term NDP member      &lt;li&gt;Be someone who will be able to beat Stephen Harper in a debate      &lt;li&gt;Be someone who is able to appeal to those who have traditionally voted NDP      &lt;li&gt;Be someone who will have the support of unions      &lt;li&gt;Be supported by the establishment of the party      &lt;li&gt;Be someone who runs a positive leadership campaign and avoids attacking other leadership candidates      &lt;li&gt;Be able to win the next federal election      &lt;li&gt;Be someone with a broad base of support in caucus      &lt;li&gt;Be someone who is able to appeal to those who have traditionally not voted NDP       &lt;/ul&gt;&lt;p&gt;Now we would like to ask you to think about the candidates who have declared for the NDP leadership.&lt;p&gt;What is your impression of ... (READ EACH CANDIDATE'S NAME) ... as a leadership candidate? Is it very favourable? Somewhat favourable? Somewhat unfavourable? Or very unfavourable? (REPEAT FOR EACH CANDIDATE)&lt;ul&gt; &lt;li&gt;Thomas Mulcair       &lt;li&gt;Robert Chisholm       &lt;li&gt;Brian Topp       &lt;li&gt;Paul Dewar       &lt;li&gt;Nicki Ashton       &lt;li&gt;Nathan Cullen       &lt;li&gt;Romeo Saganash       &lt;li&gt;Martin Singh       &lt;li&gt;Peggy Nash        &lt;/ul&gt;&lt;p&gt;Overall, based upon what you know about these individuals or have heard, where would you put each of these candidates on the political spectrum in relation to the Federal NDP? Far to the right? Somewhat to the right? In the centre? Somewhat to the left? Far to the left?&lt;ul&gt; &lt;li&gt;Robert Chisholm       &lt;li&gt;Brian Topp       &lt;li&gt;Nathan Cullen       &lt;li&gt;Thomas Mulcair       &lt;li&gt;Paul Dewar       &lt;li&gt;Peggy Nash       &lt;li&gt;Martin Singh       &lt;li&gt;Nicki Ashton       &lt;li&gt;Romeo Saganash &lt;/ul&gt;  &lt;p&gt;Thinking about some of the leadership candidates, in your view, which of them ...&lt;ul&gt; &lt;li&gt;Is most likely to win the leadership        &lt;li&gt;Will be most supported by the establishment of the party        &lt;li&gt;Is running the most positive leadership campaign and not attacking other leadership candidates        &lt;li&gt;Will best understands the concerns of your province        &lt;li&gt;Is best able to appeal to those who have traditionally voted NDP        &lt;li&gt;Will be able to put together the best possible campaign team        &lt;li&gt;Will be best able to work with, and appeal to, the members of the party and the electorate in Quebec        &lt;li&gt;Will be best able to beat Stephen Harper in a debate        &lt;li&gt;Will have the broadest base of support in caucus        &lt;li&gt;Will have the support of the unions        &lt;li&gt;Is best able to hold the party together        &lt;li&gt;Is someone who will best provide the party with much the same direction as Jack Layton        &lt;li&gt;Has been the longest term NDP member        &lt;li&gt;Is someone who will best provide the party with a new direction        &lt;li&gt;Is best able to win the next federal election        &lt;li&gt;Is best able to appeal to those who have traditionally not voted NDP        &lt;li&gt;Has most experience in government        &lt;li&gt;Is closest ideologically to yourself  &lt;/ul&gt;&lt;p&gt;If the leadership vote was being held today, which of the leadership candidates would you be voting for? (Please select one only.)&lt;ul&gt; &lt;li&gt;Nicki Ashton &lt;li&gt;Robert Chisholm &lt;li&gt;Nathan Cullen &lt;li&gt;Paul Dewar &lt;li&gt;Thomas Mulcair &lt;li&gt;Peggy Nash &lt;li&gt;Romeo Saganash &lt;li&gt;Martin Singh &lt;li&gt;Brian Topp &lt;li&gt;Undecided  &lt;/ul&gt;&lt;p&gt;How likely is it that you will change your mind and support another candidate before election day?&lt;ul&gt; &lt;li&gt;Very Likely &lt;li&gt;Somewhat likely &lt;li&gt;Somewhat unlikely &lt;li&gt;Very unlikely  &lt;/ul&gt;&lt;p&gt;Who would be your second choice for leader?&lt;ul&gt;  &lt;li&gt;Nicki Ashton  &lt;li&gt;Robert Chisholm  &lt;li&gt;Nathan Cullen  &lt;li&gt;Paul Dewar  &lt;li&gt;Thomas Mulcair  &lt;li&gt;Peggy Nash  &lt;li&gt;Romeo Saganash  &lt;li&gt;Martin Singh  &lt;li&gt;Brian Topp &lt;li&gt;Undecided  &lt;/ul&gt;&lt;p&gt;Who would be your third choice for leader?&lt;ul&gt; &lt;li&gt;Nicki Ashton &lt;li&gt;Robert Chisholm &lt;li&gt;Nathan Cullen &lt;li&gt;Paul Dewar &lt;li&gt;Thomas Mulcair &lt;li&gt;Peggy Nash &lt;li&gt;Romeo Saganash &lt;li&gt;Martin Singh &lt;li&gt;Brian Topp &lt;li&gt;Undecided  &lt;/ul&gt;&lt;p&gt;Are there any candidates for leader whom you could never vote for? (Please select all that apply.)&lt;ul&gt; &lt;li&gt;Nicki Ashton &lt;li&gt;Robert Chisholm &lt;li&gt;Nathan Cullen &lt;li&gt;Paul Dewar &lt;li&gt;Thomas Mulcair &lt;li&gt;Peggy Nash &lt;li&gt;Romeo Saganash &lt;li&gt;Martin Singh &lt;li&gt;Brian Topp &lt;li&gt;None - Could vote for any of them  &lt;/ul&gt;&lt;p&gt;Which of the candidates do you think Jack Layton would have wanted to succeed him as leader?&lt;ul&gt; &lt;li&gt;Nicki Ashton &lt;li&gt;Robert Chisholm &lt;li&gt;Nathan Cullen &lt;li&gt;Paul Dewar &lt;li&gt;Thomas Mulcair &lt;li&gt;Peggy Nash &lt;li&gt;Romeo Saganash &lt;li&gt;Martin Singh &lt;li&gt;Brian Topp &lt;li&gt;Undecided  &lt;/ul&gt;&lt;p&gt;Finally, I want to ask you about some of the personalities in the NDP.&lt;p&gt;If the following personality supported a particular leadership candidate, would that make it more or less likely that you would support that leadership candidate, or would it make no difference as to whom you supported.&lt;ul&gt; &lt;li&gt;Joy MacPhail      &lt;li&gt;Adrian Dix      &lt;li&gt;Lorne Nystrom      &lt;li&gt;Daryl Dexter      &lt;li&gt;Libby Davies      &lt;li&gt;Dwain Lingenfelter      &lt;li&gt;Greg Selinger      &lt;li&gt;Ed Broadbent      &lt;li&gt;Roy Romanow       &lt;/ul&gt;&lt;p&gt;I would like to ask your reactions to the following statements.&lt;p&gt;Please tell me whether you strongly agree, somewhat agree, somewhat disagree or strongly disagree with each of the following.&lt;ul&gt; &lt;li&gt;The NDP needs to move away from trade unions to win government.     &lt;li&gt;Given how well the NDP did in Quebec in the past election, the next leader of the NDP should be from Quebec.     &lt;li&gt;The next leader of the NDP needs to address inequality as a top priority     &lt;li&gt;The NDP can win government without becoming Liberals by running as responsible, principled New Democrats     &lt;li&gt;I would never vote for a leadership candidate who is not already a Member of Parliament     &lt;li&gt;I would never vote for a leadership candidate who has close ties to the labour movement     &lt;li&gt;The NDP needs to move closer to the political centre in order to be elected to government     &lt;li&gt;It is important that the next NDP leader be a woman     &lt;li&gt;I would never vote for a leadership candidate who was not perfectly bilingual      &lt;/ul&gt;&lt;p&gt;Some people say that the next NDP leader must continue with a positive approach to politics in order to motivate progressive voters to defeat Conservatives.&lt;p&gt;Others say that the next NDP leader must take a more confrontational approach to Stephen Harper because he needs to be faced down in order to be defeated in the next election.&lt;p&gt;Which of these statements is closest to your own point of view?&lt;ul&gt; &lt;li&gt;Take positive approach &lt;li&gt;Take confrontational approach &lt;li&gt;Don't know  &lt;/ul&gt;&lt;p&gt;Some people say that the federal NDP has been basically on the right track since Jack Layton was elect ed leader and it should continue with this proven approach under a new leader.&lt;p&gt;Others say that the NDP has been on the wrong track and won't win government unless the new leader makes fundamental changes to the workings of the party.&lt;p&gt;Which of these statements is closest to your own point of view?&lt;ul&gt; &lt;li&gt;On right track - continue &lt;li&gt;On wrong track - fundamental changes needed &lt;li&gt;Don't know  &lt;/ul&gt;&lt;p&gt;And finally, a few questions about you...&lt;p&gt;Which of the following best describes your current marital status...?&lt;ul&gt; &lt;li&gt;Single, never married &lt;li&gt;Married / cohabiting &lt;li&gt;Separated / divorced &lt;li&gt;Widowed &lt;/ul&gt;  &lt;p&gt;Do you, or did you, work in the private or public sector?&lt;ul&gt; &lt;li&gt;Private &lt;li&gt;Public &lt;li&gt;Neither  &lt;/ul&gt;&lt;p&gt;Are you currently, or have you ever been, a member of a union?&lt;ul&gt; &lt;li&gt;Yes &lt;li&gt;No  &lt;/ul&gt;&lt;p&gt;Are you a full-time student?&lt;ul&gt; &lt;li&gt;Yes &lt;li&gt;No &lt;/ul&gt;  &lt;p&gt;How would you describe the community in which you live?&lt;ul&gt; &lt;li&gt;Urban &lt;li&gt;Suburban &lt;li&gt;Rural &lt;/ul&gt;  &lt;p&gt;While I know that most of us would classify ourselves as Canadians first, can you please tell me what your specific ethnic background is?&lt;ul&gt; &lt;li&gt;White / Caucasian &lt;li&gt;Black / African Canadian / Caribbean Canadian &lt;li&gt;Hispanic / Latino &lt;li&gt;Asian &lt;li&gt;South Asian &lt;li&gt;Middle Eastern &lt;li&gt;Aboriginal / First Nation &lt;/ul&gt;  &lt;p&gt;Which of the following categories best reflects your total annual household income before taxes?&lt;ul&gt; &lt;li&gt;Less than $25,000 &lt;li&gt;$25,000 to $50,000 &lt;li&gt;$51,000 to $75,000 &lt;li&gt;$76,000 to $99,999 &lt;li&gt;$100,000 plus &lt;li&gt;Prefer not to say  &lt;/ul&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4682081615925154333?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4682081615925154333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4682081615925154333' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4682081615925154333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4682081615925154333'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/11/federal-ndp-leadership-poll.html' title='Federal NDP Leadership Poll'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-968724302600329118</id><published>2011-11-13T08:43:00.001-08:00</published><updated>2011-11-13T08:45:27.602-08:00</updated><title type='text'>Manager, Strategic Management</title><content type='html'>Every week, LinkedIn kindly sends me a list of "jobs I might be interested in", which I have to say is an interesting feature, given the data they have to work with. Like the early days of Google advertising, it's fun to see what the algorithm comes up with as "relevant" to me. And this week I got this awesome, awesome, awesome, awesome entry:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;Manager, Strategic Management&lt;/b&gt;&lt;br /&gt;The Manager, Strategic Management is accountable for leading the development, maintenance and evaluation of corporate planning, performance management, benchmarking, risk management, and reporting programs.  The position reports to the Chief Executive Officer of BC Assessment and works directly with the governing Board of Directors to facilitate strategic planning and risk management sessions. The position exercises considerable latitude and independence to oversee and develop a coordinated and consultative corporate plan, risk and performance management culture across BC Assessment. In this role, the position is expected to manage the corporate planning cycle to achieve a top to bottom linking of mandate and vision of operational business activities including the annual and year-over-year alignment of budgets, resource allocation, performance and risk management programs. This position leads a small team, including senior program analysts and a research officer.&lt;/blockquote&gt;People I trust tell me BC Assessment has so much money, they really &lt;b&gt;do&lt;/b&gt; eat &lt;a href="http://motherjones.com/kevin-drum/2011/09/great-16-dollar-muffin-myth"&gt;$16 muffins&lt;/a&gt; for breakfast, but the existence of the "Manager, Strategic Management" is all the proof I need.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-968724302600329118?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/968724302600329118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=968724302600329118' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/968724302600329118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/968724302600329118'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/11/manager-strategic-management.html' title='Manager, Strategic Management'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2292594516438975141</id><published>2011-09-20T10:20:00.001-07:00</published><updated>2011-09-21T16:50:01.955-07:00</updated><title type='text'>FOSS4G 2011 Keynote</title><content type='html'>Here's my latest foray into the wild and wacky world of Speaking in Front of Too Many People: a keynote slot at &lt;a href="http://2011.foss4g.org"&gt;FOSS4G 2011&lt;/a&gt;. Fortunately a quick 20 minutes, and well received!&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://blip.tv/play/hdlkgtPlLQI.html" width="480" height="372" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;embed type="application/x-shockwave-flash" src="http://a.blip.tv/api.swf#hdlkgtPlLQI" style="display:none"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;&lt;B&gt;Update:&lt;/b&gt; Now available in &lt;a href="http://vimeo.com/29401659"&gt;hi-def&lt;/a&gt; with &lt;em&gt;extra me&lt;/em&gt; courtesy of &lt;a href="http://vimeo.com/pmbatty"&gt;Peter Batty&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://player.vimeo.com/video/29401659?title=0&amp;amp;byline=0&amp;amp;portrait=0" width="480" height="270" frameborder="0" webkitAllowFullScreen allowFullScreen&gt;&lt;/iframe&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2292594516438975141?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2292594516438975141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2292594516438975141' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2292594516438975141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2292594516438975141'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/09/foss4g-2011-keynote.html' title='FOSS4G 2011 Keynote'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-9161911954561715101</id><published>2011-09-17T22:38:00.001-07:00</published><updated>2011-09-17T22:48:30.403-07:00</updated><title type='text'>Architecture of Participation</title><content type='html'>I told a number of folks at FOSS4G 2011 that I thought this year's event was the "best FOSS4G ever" (HT, Juan Antonio Samaranch) but that wasn't just tongue in cheek. 2011 was the biggest ever, but only a few attendees more than Barcelona in 2010. Yet somehow I felt more energized, more connected, like I had more conversations, than in 2010.&lt;br /&gt;&lt;br /&gt;I think the reason for my impression has a lot to do with venue. Barcelona was in a very large conference center, with the rooms fairly spread out and almost too much room for people to expand into. Further, there were no large social areas near the venue. The result was the attendees dissipating after the end of the day's programming.&lt;br /&gt;&lt;br /&gt;In Denver, many of the attendees were in the Sheraton, co-located with the program venue. The Winkoop brewery provided a space sufficient to bring in hundreds of attendees for the welcome social. The Sheraton building itself included two pubs capable of seating hundreds, and hundreds of attendees did in fact sit there. The gravitational effect was of people walking by, seeing their FOSS4G comrades, and joining in the group themselves. It was hard to drink alone at FOSS4G 2011!&lt;br /&gt;&lt;br /&gt;We had a similar dynamic in 2007, though honestly, not as good, since our "main meeting pub" was closed one night for a private event, and we never had the thought to simply book it ourselves for our own group (live and learn). Nor were we able to co-locate the event with a conference hotel (using the Empress Hotel which abuts the Victoria convention centre would have been prohibitively expensive.)&lt;br /&gt;&lt;br /&gt;I think the lesson for future organizers is to thing very carefully about venue and connectivity and social gravity. Ensure there is a social space where many can fit and can find each other for fortuitous meetings. Try to keep all the components of the event (venue, rooms, social areas) as close together as possible. Give as many opportunities (welcome social, random social, exhibitors social, event gala) for mixing as possible. Avoid the sit-down event (which locks folks into a handful of interlocutors) in favour of the stand-up (which allows free flowing).&lt;br /&gt;&lt;br /&gt;Seeing how well Denver did makes me almost want to try again and see if I can do better. Almost.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-9161911954561715101?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/9161911954561715101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=9161911954561715101' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9161911954561715101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9161911954561715101'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/09/architecture-of-participation.html' title='Architecture of Participation'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4103670462483357653</id><published>2011-08-20T17:38:00.000-07:00</published><updated>2011-08-20T18:00:14.142-07:00</updated><title type='text'>FOSS4G Time</title><content type='html'>&lt;a href="http://2011.foss4g.org"&gt;&lt;img src="http://wiki.osgeo.org/images/7/72/Foss4g_2011_150px.png" style="float:right; padding:5px;"&gt;&lt;/a&gt;A journey of 1000 miles starts with one step, and if you're wondering whether open source is in your future, the first step should be a trip to &lt;a href="http://2011.foss4g.org/"&gt;FOSS4G 2011&lt;/a&gt; in Denver this year. &lt;br /&gt;&lt;br /&gt;My favorite local open source geospatial success story, &lt;a href="http://www.co.pierce.wa.us/pc/"&gt;Pierce County&lt;/a&gt;, in Washington, started four years ago, when the GIS manager sent a small contingent north to attend &lt;a href="http://2007.foss4g.org"&lt;/a&gt;FOSS4G 2007&lt;/a&gt; in Victoria. From the knowledge and enthusiasm garnered there they have been able to start to re-make their infrastructure into a flexible mixed environment of open source and proprietary tools.&lt;br /&gt;&lt;br /&gt;But it all starts with the basic knowledge. What's out there? Who can build with it? What are the best choices? You'll never have a more concentrated opportunity to answer all your questions about open source geospatial than FOSS4G.&lt;br /&gt;&lt;br /&gt;I'll be there all week, teaching a &lt;a href="http://2011.foss4g.org/sessions/introduction-postgis-sold-out"&gt;workshop on PostGIS&lt;/a&gt; (sorry, sold out) and giving talks on &lt;a href="http://2011.foss4g.org/sessions/state-postgis"&gt;introductory PostGIS&lt;/a&gt; and &lt;a href="http://2011.foss4g.org/sessions/tips-postgis-power-user"&gt;advanced PostGIS trickery&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;See you all in Denver!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4103670462483357653?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4103670462483357653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4103670462483357653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4103670462483357653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4103670462483357653'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/08/foss4g-time.html' title='FOSS4G Time'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3945207965519615816</id><published>2011-08-15T10:36:00.000-07:00</published><updated>2011-08-15T11:07:15.841-07:00</updated><title type='text'>Open source is not free (as in beer) ...</title><content type='html'>Last week, I &lt;a href="http://blog.cleverelephant.ca/2011/08/proprietary-software-is-not-future-you.html"&gt;took the time to ridicule&lt;/a&gt; a post at the &lt;a href="http://stratus.pbbiblogs.com/2011/08/12/open-source-is-not-the-future-you-think-it-is…/"&gt;PBBI blog&lt;/a&gt; on open source, which really boiled down to a critique of the very flimsy open source argument "open source is free (as in beer) so it's a budget panacea!". I hope not many open source advocates are retailing that one, but I'm sure one or two of us still are.&lt;br /&gt;&lt;br /&gt;In my idealistic younger days I read a lot of &lt;a href="http://www.chomsky.info/"&gt;Chomsky&lt;/a&gt;, and one of the general principles I took away from him is the idea that as citizens we have a duty to critique and criticize our own governments first and foremost. Beating our chests about the behaviour of some despot on the other side of an ocean might be cathartic, but if we're really interested in improving the commonweal it is our job as citizens of democratic societies to make our own governments better first.  (Like, why does &lt;a href="http://www.thestar.com/news/canada/article/1013166--canada-blocks-asbestos-from-hazardous-chemicals-list-at-un-summit"&gt;Canada sell asbestos&lt;/a&gt; as a building supply to third world countries when back home we recognize that it's too dangerous for our own buildings?)&lt;br /&gt;&lt;br /&gt;Anyhow, in that spirit, it is really my responsibility, not PBBI's, to point out the disingenuousness of "open source is free (as in beer)" as a slogan. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;So, first the counterargument.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I think most folks recognize that implementation costs will wash out software acquisition costs for any moderately complex system build. But we still, in our lizard brains, feel like the acquisition cost of proprietary software has to be a systemic problem. Perhaps because it's so painful at a personal level to whip out the credit card and plunk down a few hundred bucks for something like Microsoft Office.&lt;br /&gt;&lt;br /&gt;However, when you examine the numbers, it gets very clear very fast that service costs are an order of magnitude larger than software acquisition costs. The BC Public Accounts tell the story for my home province: For the past ten years, ESRI has taken in between $1M and $2M a year pretty consistently selling GIS software. Over those same years, the consulting companies in town I would call "geospatial companies" have in aggregate billed about 10 times that annual figure providing services.&lt;br /&gt;&lt;br /&gt;Services rule! The profit margins in services are notoriously lower than for software, and I'm sure ESRI made more pure profit on their $1M per year. But the bulk size of service revenues more than compensates.  That's why &lt;a href="http://blog.cleverelephant.ca/2011/06/outsourcing-in-bc.html"&gt;IBM and HP are growing&lt;/a&gt; into services. Because there's so much room to grow in there.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Second, the refinement.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;While "open source is free (as in beer)!" can be oversold, it is not actually untrue. Open source does actually have a price-tag of $0, and proprietary has a price-tag of &amp;gt; $0. So how to refine the slogan to not over-emphasize price? I have been using a modification which I hope focusses people more clearly on where the price can be important.&lt;br /&gt;&lt;br /&gt;"Open source has a zero dollar capital cost."&lt;br /&gt;&lt;br /&gt;So, given that the cost of services out-weighs software for most system building, you might not care about software acquisition cost if you're deploying the finished product once. But if you're deploying a system across 10 or 100 nodes, then the capital cost of deployment might be an extremely important economic variable.&lt;br /&gt;&lt;br /&gt;In some cases (*cough* Oracle *cough*) the cost of just one node can be enough to push people over the edge on initial capital cost. But most proprietary software is more moderately priced, and it takes more nodes before the pure price differential is worth feeding into a comparison exercise.&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;br /&gt;I lay out more non-monetary reasons for bringing open source to the management table in my talk &lt;a href="http://s3.cleverelephant.ca/duluth-2010-keynote.pdf"&gt;A Manager's Guide to Open Source&lt;/a&gt;.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3945207965519615816?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3945207965519615816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3945207965519615816' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3945207965519615816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3945207965519615816'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/08/open-source-is-not-free-as-in-beer.html' title='Open source is not free (as in beer) ...'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4749333090783635772</id><published>2011-08-12T14:03:00.000-07:00</published><updated>2011-08-12T15:25:30.016-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proprietary software'/><category scheme='http://www.blogger.com/atom/ns#' term='industry'/><category scheme='http://www.blogger.com/atom/ns#' term='common sense'/><title type='text'>Proprietary software is not the future you think it is...</title><content type='html'>OK, so this morning James Fee tweeted &lt;a href="http://stratus.pbbiblogs.com/2011/08/12/open-source-is-not-the-future-you-think-it-is…/"&gt;this nugget&lt;/a&gt; of late 90's "open minded thinking about open source" from a proprietary vendor.&lt;br /&gt;&lt;br /&gt;And if you think I can leave that alone... you just don't know me that well!&lt;br /&gt;&lt;br /&gt;I'd go through and work on the arguments point-by-point, but there's hardly any argument there. It's almost all innuendo and unsupported assertion. So I just re-wrote it from the opposite point of view largely using search-and-replace. It holds up pretty well, because there's no content, just bluster. My favourite part is the paragraph on PostGIS, which I left unchanged, since it's actually a pretty powerful argument against proprietary software (your pro-proprietary argument is that Oracle is going to kick your ass if you use open source? awesome!) &lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Proprietary software is not the future you think it is...&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Read those words carefully. Read what they are, and understand what they are not. It could mean “open source zealot dismisses proprietary software”. It doesn’t. What it means is that while many preach the virtues of proprietary software, meaning supported, reliable, and guaranteed uptime with no technical expertise required – I do not subscribe. Closed platforms, be it maps or software, are fantastic and I believe a part of the IT industry as far as we can see into the future. OpenGeo, for example, uses proprietary software in its own products so the likes of the OpenGeo Suite connect easily to an ESRI ArcSDE server. But let me give you a couple of examples where I am coming from.&lt;br /&gt;&lt;br /&gt;I saw a presentation a couple of years ago from a older gentleman – about my age  – who had a 30 minute slot at a conference. For 25 minutes he exalted the virtues of his product, and how he can take this piece of  software, and solve all kinds of business problems with just the touch of a button and you – yes you – can touch that button too. But he was also pushing his wares, and spent the final five minutes telling you how his product would be even more useful if you also bought all this other products. So the end result in that case was: this tool is great, but to be actually useful you have to buy all the other stuff. Come again? You mean its good, but I can only unlock the value by standardizing on your whole platform? But you just spent 25 minutes telling me how great this new stuff is and now I’m still being asked to open my wallet even more? Heckling ensued from the peanut gallery.&lt;br /&gt;&lt;br /&gt;Let’s take another scenario. You have decided to invest in an standard vendor solution. To put this all together you decide to employ one or two low-end hacks from a technical training farm. Over the following 12 months these guys struggle (because they aren't very bright) but in the end you have something that works, and only requires a nightly reboot.&lt;br /&gt;&lt;br /&gt;But a year or two down the line, your management decides they need the system to support ten times as many users, and provide 99.9% up-time. Maybe you don't have the budget to license that many cores. Now you've got to re-architect and re-write the system to scale and not require reboots anymore. And there's a problem. Your low-end hacks can't figure out how to do anything that's not in the "introduction" section of the manual or can't be done with the GUI. Given the choice between learning how to script a solution and spending 5 hours clicking the same buttons over and over, they choose the latter. Any why not? They are on salary, after all.  You can see where this is going.&lt;br /&gt;&lt;br /&gt;The point of course, is that proprietary software is not 100% reliable or scalable with zero effort. And proprietary software may not even be the best engineered solution. I am not asking you to ignore proprietary software and only use open source, because that in some ways puts you back to square one. Proprietary software has credible value to both system integrators providing sustainable solutions and individual organizations implementing systems. &lt;br /&gt;&lt;br /&gt;Take Oracle as an example. It has been the industry standard for years, and is in many instances a credible alternative to the likes of PostgreSQL. But are you going to pay more or less for that Oracle DBA over the PostgreSQL DBA? Assuming it’s the same, or perhaps a little more for a specialist, then we’re into pure software licensing. I can guarantee Oracle aren’t about to roll over because of pricing. If a company has a site agreement with Oracle are you free to pick up another database? Even if it is free – or free to download? As some people say “spatial is special” we are increasingly seeing that IT departments disagree. Spatial is increasingly not viewed as special and won’t be treated as such.&lt;br /&gt;&lt;br /&gt;I’ve already seen firsthand, organizations that have tried and given up on building a sustainable product to sell based entirely on proprietary software, and organizations do a complete U-turn on what they were told were "off-the-shelf" systems because of spiralling costs and concerns over maintenance. It’s not to say you shouldn’t take that path, but it is to say, it’s not easy, and in the long run it might not even be possible. The crux behind all of this is money. If we all had loads it wouldn’t matter so much. We’d buy whatever system we wanted, and lots of consultants to wire the black boxes together. But now more than ever we don’t have money. If an offer seems too good to be true, then it probably is. Proprietary software will continue to evolve and grow and I’ve no doubt more and more individuals and organizations will participate. Some organizations will use proprietary software for the press releases and "president's leadership" awards, others for the free lunches with sales reps. I still believe we are looking for products which give us the best of both worlds. Extensibility where we are comfortable, but somehow reducing the risk and ongoing support to minimal predictable cost.&lt;br /&gt;&lt;br /&gt;A couple of weeks ago I said a more informed decision is likely to be a better one. Next time someone tells you proprietary software is cheaper overall and more reliable, have a little think about it. Use what is right, not what someone else says might be cheap.&lt;br /&gt;&lt;br /&gt;Paul R&lt;br /&gt;&lt;br /&gt;PS – This blog is using blogger – we use it because it’s a great tool for the job, not just because it’s closed and proprietary!&lt;br/&gt;&amp;nbsp;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4749333090783635772?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4749333090783635772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4749333090783635772' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4749333090783635772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4749333090783635772'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/08/proprietary-software-is-not-future-you.html' title='Proprietary software is not the future you think it is...'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5998471770771599676</id><published>2011-07-20T13:53:00.000-07:00</published><updated>2011-07-20T14:20:34.094-07:00</updated><title type='text'>Data vs Reports</title><content type='html'>I'm sure I'll have to spend a lot more time trolling the &lt;a href="http://data.gov.bc.ca"&gt;DataBC&lt;/a&gt; site before I have discovered all the jewels therein amongst the dross, but one thing I noticed while searching for "&lt;a href="http://www.data.gov.bc.ca/dbc/search/result.page?ms=url%3Aapps.gov.bc.ca&amp;keyword=birth"&gt;birth&lt;/a&gt;" was a large number of entries like &lt;a href="http://www.data.gov.bc.ca/dbc/search/detail.page?recorduid=171751"&gt;this entry from Vital Statistics&lt;/a&gt;: "Table 25 - Infant Mortality by Gestational Age and Birth Weight, British Columbia, 2005"&lt;br /&gt;&lt;br /&gt;Is this data? Kinda. There's numbers. It's an Excel sheet. But let's get real here, this is a report. It's a summary. That's why Vital Statistics has hundreds and hundreds of "data set" entries like this in the catalogue instead of the number they should have: &lt;b&gt;ONE&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;There is one database of births and deaths in the province. Strip out the names and addresses, leave the causes, dates, ages, postal codes, and release &lt;b&gt;THAT&lt;/b&gt; please, instead of the hundreds of year-by-year (not even longitudinal summaries! arg!) summaries.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5998471770771599676?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5998471770771599676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5998471770771599676' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5998471770771599676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5998471770771599676'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/07/data-vs-reports.html' title='Data vs Reports'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3117691999397511102</id><published>2011-06-29T10:27:00.000-07:00</published><updated>2011-06-29T10:37:47.228-07:00</updated><title type='text'>Guh, Goh!</title><content type='html'>Remember Google Wave? Maybe not, but you might remember the hype. The 1 hour &lt;a href="http://www.youtube.com/watch?v=v_UyVmITiYQ"&gt;video introduction&lt;/a&gt;, the breathlessly handed out friend-of-a-friend invitations. Google Buzz, similarly. Google Health. Orkut. Knol. &lt;a href="http://www.geekonnet.com/2010/07/googles-failed-products.html"&gt;The list goes on&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The upside of trying lots of things is that you sometimes catch a winner, I guess. Maps and location were winners, but they have a natural synergy with the search / advertising business.&lt;br /&gt;&lt;br /&gt;The downside is that Google has burned up all it's cachet. When 80% of the products you launch bomb, people eventually assume everything you launch is going to bomb. Which, in the self-levitating bootstrapping world of network services and network effects means they have already bombed. &lt;a href="http://plus.google.com"&gt;Google+&lt;/a&gt;, we hardly knew thee. &lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3117691999397511102?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3117691999397511102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3117691999397511102' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3117691999397511102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3117691999397511102'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/guh-goh.html' title='Guh, Goh!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2749097814268135557</id><published>2011-06-25T11:08:00.000-07:00</published><updated>2011-06-25T11:12:40.796-07:00</updated><title type='text'>Visualizing Progress</title><content type='html'>Data visualization gets (from me) a bad rap, because so often it is used as a way to make fundamentally unsexy things just sexy enough for management to buy, without reference to whether the item in question is, at core, useful or effective.&lt;br /&gt;&lt;br /&gt;Caveat aside, this graph from the GeoTools JIRA side made my hair stand on end.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-wJ0o8d4ZYAg/TgYkch8vHmI/AAAAAAAAAFE/Ve1vUgVtnfo/s1600/screenshot_01.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 219px;" src="http://2.bp.blogspot.com/-wJ0o8d4ZYAg/TgYkch8vHmI/AAAAAAAAAFE/Ve1vUgVtnfo/s320/screenshot_01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5622221257386696290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yikes, do you close more tickets than get opened? There's a visualization that lights a fire under my butt!&lt;br /&gt;&lt;br /&gt;Even when I'm in full ticket-hunting-mode I feel like I sometimes am not making forward progress, since Regina gets into bug-finding-mode and starts opening them up on me faster. And the last year of adding features to PostGIS (raster, topology) while altering core structures (serialization, indexes) has created an &lt;a href="http://trac.osgeo.org/postgis/report/3"&gt;avalanche of tickets&lt;/a&gt;. More than fits on a page. Time to get closing!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2749097814268135557?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2749097814268135557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2749097814268135557' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2749097814268135557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2749097814268135557'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/visualizing-progress.html' title='Visualizing Progress'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-wJ0o8d4ZYAg/TgYkch8vHmI/AAAAAAAAAFE/Ve1vUgVtnfo/s72-c/screenshot_01.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6181937983981055669</id><published>2011-06-20T12:03:00.000-07:00</published><updated>2011-06-20T12:10:50.933-07:00</updated><title type='text'>To the Cloud!</title><content type='html'>David Pogue has a little &lt;a href="http://pogue.blogs.nytimes.com/2011/06/16/excited-about-the-cloud-get-ready-for-capped-data-plans/"&gt;mini-rant&lt;/a&gt; today on the use of "cloud" as a generic term to mean "internet" which I found fun, if only because it reminded me of the odd origins of the term.&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 103px;" src="http://2.bp.blogspot.com/-QZtrc3_6QSI/Tf-aCD8kgpI/AAAAAAAAAEY/UJpGCxUs3Y0/s320/screenshot_01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5620380220191441554" /&gt;&lt;br /&gt;&lt;br /&gt;As far as I can guess, the term leaked out of white-board shorthand used by folks drawing up high-level architecture diagrams. Who it was who popularized that diagram convention is a mystery, probably it is an elaboration on some even earlier trope. Now, thanks to &lt;a href="http://www.youtube.com/watch?v=-HRrbLA7rss"&gt;Microsoft marketing&lt;/a&gt;, the term means... nothing? everything? kung fu music? computers-can-magically-solve-anything?&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6181937983981055669?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6181937983981055669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6181937983981055669' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6181937983981055669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6181937983981055669'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/to-cloud.html' title='To the Cloud!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-QZtrc3_6QSI/Tf-aCD8kgpI/AAAAAAAAAEY/UJpGCxUs3Y0/s72-c/screenshot_01.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8292055940358580971</id><published>2011-06-17T09:18:00.000-07:00</published><updated>2011-06-17T16:44:18.631-07:00</updated><title type='text'>IT as Obstacle</title><content type='html'>Getting the re-tweeting rounds today, &lt;a href="http://www.itworld.com/cloud-computing/174967/business-users-abandoning-it-quicker-self-serve-cloud-apps"&gt;an article on why business are moving to the cloud&lt;/a&gt;. The answer? To avoid their own IT departments.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Their top reasons for going around IT? The need to respond quickly to changes in the market, self-sufficiency of their IT-savvy workforce, and the easy availability of top-quality it services that can be bought without long implementation or testing (cloud and SAAs apps, primarily).&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.cleverelephant.ca/2011/06/it-revolution.html"&gt;Watch out&lt;/a&gt;, the natives are restless.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Check out the comment thread in the &lt;a href="http://slashdot.org/story/11/06/17/1312206/Why-Businesses-Move-To-the-Cloud-They-Hate-IT"&gt;slashdot.org&lt;/a&gt; posting of this article for the good, bad and ugly of IT reaction to being sidelined. Ranges from "stupid users" to some thoughtful comments on the nature of organizations.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8292055940358580971?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8292055940358580971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8292055940358580971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8292055940358580971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8292055940358580971'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/it-as-obstacle.html' title='IT as Obstacle'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-390960845010100681</id><published>2011-06-17T07:50:00.000-07:00</published><updated>2011-06-17T07:50:00.499-07:00</updated><title type='text'>Outsourcing in BC</title><content type='html'>Every year, in a fit of morbid curiousity, I cruise the detailed schedule of payments in the &lt;a href="http://www.fin.gov.bc.ca/OCG/pa/09_10/Pa09_10.htm"&gt;BC Public Accounts&lt;/a&gt; as a way of keeping tabs on the local IT industry. Who is up? Who is down? Who is gone?&lt;br /&gt;&lt;br /&gt;&lt;img src="https://spreadsheets.google.com/a/cleverelephant.ca/spreadsheet/oimg?key=0AsM7ePw4lyCDdEpEUXZlZWNSRXZtQXZmeVNVajhvRmc&amp;oid=2&amp;zx=5wc3y1j3v00t" /&gt;&lt;br /&gt;&lt;br /&gt;One of the certainties, year after year, is that IBM's take just keeps getting bigger. I thought it was pretty impressive when they were doing $30M / year, but last year they cracked $100M.  &lt;br /&gt;&lt;br /&gt;Another trend has been the slow squeeze of the market place from one with a mix of companies, ranging from 10-person consultancies to 100-person regional integrators to the big international firms, to a market dominated almost completely by the internationals. The mid-size companies were largely bought up, and the small ones squeezed out.  Deal sizes have kept growing, making it hard for smaller companies to compete, while the migration of infrastructure roles to outsourcing companies has given those same companies an built-in edge in competing for systems work. Even long-time regional heavy-weight Sierra Systems is getting beaten down.&lt;br /&gt;&lt;br /&gt;There are many big mistakes being made by government as this process goes on, but perhaps the biggest is the long-term sole-source outsourcing agreement. The fantasy that costs can be managed in a single vendor environment, that the contract just needs the right review clauses and penalties, continues to suck in government outsourcers. There's no true competition in a system where a vendor only needs to compete every 5-10 years (and even then, from the position of the incumbent). Expecting market efficiencies to work in your favour in such as situation is folly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Postscript:&lt;/b&gt; In 2009/2010, HP and IBM combined to bill the BC government over $200M, mostly in services. IBM's &lt;a href="ftp://public.dhe.ibm.com/annualreport/2010/2010_ibm_annual.pdf"&gt;2010 annual report&lt;/a&gt; indicates 34.7% gross margin for IBM Global Services. The HP annual report shows a similar margin for services. The implication is, of the $200M we are spending with HP and IBM, $70M is going to profit, not to providing service. Put another way, if the government chose to provide those services internally, it could pay all the staff at HP/IBM salary rates and still afford to employ 50% more people to do the work.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-390960845010100681?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/390960845010100681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=390960845010100681' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/390960845010100681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/390960845010100681'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/outsourcing-in-bc.html' title='Outsourcing in BC'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2243829484236908540</id><published>2011-06-16T16:04:00.000-07:00</published><updated>2011-06-16T16:04:02.083-07:00</updated><title type='text'>Superstar CIOs</title><content type='html'>The superstar CIO is necessarily going to be a bit of a flimflam artist. He has to be, because in order to get into the position, he's had to dazzle his non-technical superiors. That means eye-candy, first and foremost, delivered fast. Delivered fast, you say, how can he do that with his sclerotic organization? Easy, he contracts off to the side or builds a private skunk-works.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blog.executivebiz.com/wp-content/uploads/2009/04/vivek-kundra.jpg" style="float:right;padding:5px;"&gt;So, from Vivek Kundra (US Federal CIO) on the one hand we have the flimflam of data.gov, and various high level dashboard trackers (recovery.gov anyone?), tossed up quickly by a tiger team. Not indicative of transformation, but rather the opposite: in order to get anything completed quickly the CIO has to actually route around his existing organization. But there is also some substance.&lt;br /&gt;&lt;br /&gt;Some of the substance is pure management, like the &lt;a href="http://itmanagement.earthweb.com/netsys/article.php/3899971/White-House-Embarks-on-30B-Federal-IT-Overhaul.htm"&gt;review of failing projects&lt;/a&gt;. Some is technological silver-bullet-worship (of a sort I can appreciate, being a long-time silver bullet lover) like the &lt;a href="http://realworldjava.com/node/982371"&gt;move to government use of cloud infrastructure (both external and self-managed)&lt;/a&gt;. (Because the answer is always another layer of abstraction!)&lt;br /&gt;&lt;br /&gt;But one thing comes through clearly watching Mr. Kundra: it's a really big organization and he's just one guy. The culture will out-live him. The men in grey suits will win. In some ways a full-on flimflam artist would be better, because at least then I wouldn't be disappointed when nothing changes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Postscript:&lt;/b&gt; Kundra did manage to &lt;a href="http://blog.cleverelephant.ca/"&gt;change some things&lt;/a&gt; but many of his marquee initiatives were separately funded initiatives that Congress is now de-funding for political reasons. And the news today is that he's leaving his post &lt;a href="http://www.washingtonpost.com/blogs/federal-eye/post/vivek-kundra-to-step-down-as-chief-information-officer/2011/06/16/AGF6YLXH_blog.html"&gt;for academe&lt;/a&gt; to take a well-earned break. Did he push the culture in the right direction? Probably so!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2243829484236908540?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2243829484236908540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2243829484236908540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2243829484236908540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2243829484236908540'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/superstar-cios.html' title='Superstar CIOs'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-7962203020347849348</id><published>2011-06-16T08:00:00.000-07:00</published><updated>2011-06-16T10:30:34.030-07:00</updated><title type='text'>IT Revolution</title><content type='html'>Back when I first started working in the British Columbia government, in 1993, there existed a Crown Corporation called "BC Systems Corporation", BCSC. Through the 1980s, major pieces of government operations (timber tenuring, financial tracking, health insurance) had been computerized using the finest technology of the era (mostly mainframes) and BCSC had grown up as the central IT branch of the government. They ran the big machines, the terminals that accessed them and were taking on the newfangled PCs increasingly showing up on the desks of drones like me (I answered correspondence, there still being a brisk trade in "mail" at the time).  The extent to which BCSC was wedded to the technology of the previous era can best be understood by noting that one of their last major accomplishments was writing a web browser, &lt;a href="http://edurealm.tripod.com/browsers.htm"&gt;Charlotte&lt;/a&gt;, for the 3270 green-screen terminal.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://wahsegavalleyfarm.typepad.com/.a/6a00d83519315253ef0120a52932e6970c-400wi"&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Being stocked full of the finest minds in computerdom, BCSC briskly alienated pretty much all the folks it was supposed to be serving. It's services were too expensive, the old mainframe systems too inflexible, the response times too long. Shortly after I left government to finish my graduate degree, BCSC was blown up and its functions distributed to IT departments in the Ministries themselves.&lt;br /&gt;&lt;br /&gt;And so the process began anew. Just as BCSC had stitched together systems from multiple ministries into a centralized empire over a decade, so too did the centralizing imperative begin to work immediately once again. First e-mail. Then major data centre needs. First by choice, then by fiat, gradually the Ministry IT departments were stripped of line responsibility for their systems and left with a residue of business analysts and managers.&lt;br /&gt;&lt;br /&gt;A new wrinkle was added this time around though, in that rather than centralizing entirely to another agency, many of the services were centralized and then bundled off to outside companies. So desktop support was re-centralized and taken over by IBM. The result has been service just as poor as the old days (worse, in fact! back in the BCSC days there was a PC tech co-located right on our office floor, a luxury most government workers could hardly imagine now) with prices just as high.&lt;br /&gt;&lt;br /&gt;BCSC was blown up when Ministries realized that they could provide the same services for themselves that BCSC did using PCs, and started doing so. Once the mainframe boys weren't necessary any more, they were dispensed with, joyfully. Ministries wanted to Get Things Done, and the main role of BCSC was to say You Can't Do That.&lt;br /&gt;&lt;br /&gt;Today we have another round of folks saying You Can't Do That. The desktop outsource vendor says you can't have a new computer, and if you do get one, you can't install any software on it. The server outsource vendor says you can't afford a system to run your code on. Or if you can, then you need to go through a three month process to get the server first. And the CIO's office says you can't run that programming language because it's not government standard.&lt;br /&gt;&lt;br /&gt;And here comes the cloud. Just as the PC freed the Ministries from the mainframe boys, the cloud is going to free folks from IT once again. Need a web site? Need a small system? Maybe an App Engine deployment. Need some data processing? Maybe an EC2 server will do the trick. It's all well under credit card spending limits. (My first government supervisor, bless her heart, bought me a copy of MS Access on her department credit card so I could avoid the All Databases Must Be Oracle directive and actually Get Some Work Done On My Computer).&lt;br /&gt;&lt;br /&gt;The revolution is coming, it'll start quiet, but it'll get ugly. Hopefully soon.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Postscript:&lt;/b&gt; Michael Weisman, in a comment on my &lt;a href="http://blog.cleverelephant.ca/2011/06/broken-enterprise-it.html"&gt;last post&lt;/a&gt; points to &lt;a href=""&gt;an article in the Washington Post&lt;/a&gt; about superstar CIO Vivek Kundra (coincidentally, the topic of another upcoming post of mine). Says Mr. Kundra, "People have better access to information technology at their homes than they do at work, and that’s especially true in the public sector". And another great quote from the article: Asked what he typically hears from workers about gov­ernment- or corporate-provided technology, Kundra said, “It’s not a question of whether they don’t like it. They despise it.”&lt;br /&gt;&lt;br /&gt;Kundra seems to have hit upon a winning formula: stop saying "no" and start saying "yes". The career risk of saying "no" is now higher than the risk of saying "yes".  Welcome to the new conservatism. Give the people what they want, or things will get... unpleasant.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-7962203020347849348?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/7962203020347849348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=7962203020347849348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7962203020347849348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7962203020347849348'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/it-revolution.html' title='IT Revolution'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2289366498162494393</id><published>2011-06-15T15:30:00.000-07:00</published><updated>2011-06-15T16:03:09.896-07:00</updated><title type='text'>Broken Enterprise IT</title><content type='html'>For as long as I have been doing technology, I have watched enterprise IT and said to myself "this seems incredibly broken, why do people put up with this?" This includes the period when I was doing consulting and running teams that specifically had to mould their reporting and processes to fit into the requirements of government (enterprise) IT. Actually doing it didn't make it seem any more sane.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://images.fastcompany.com/upload/project-flowchart.jpg" style="width:310px;height:213px;float:right;padding:5px;"/&gt;At this point, I should explain what seemed wrong. The processes around IT actions in the enterprise environment (and my experience was in government, but my glancing exposure to Fortune 500 environments didn't uncover any great differences there) all seemed geared towards slowing down progress. The many layers of approvals and plans, the disconnection between operations and development, the migration of core technical decisions upwards to non-technical management staff.&lt;br /&gt;&lt;br /&gt;Compare the outputs of a start-up company, turning out an aesthetically pleasing piece of software usable by ordinary folks within a timeline of a few months to that of an enterprise system building team that may or may not deliver something ugly and slow in a couple years. What's different? The people are generally of the similar capability and intelligence. But the culture and processes they are embedded in are radically different.&lt;br /&gt;&lt;br /&gt;As a 25-year-old smart-ass I was always pretty sure a team of 5 working outside the enterprise IT structure could produce a better system faster than a team of any size working within it. As a 40-year-old smart ass, for some reason I still haven't altered that conception. I do, however, have more sympathy for the folks working within the system.  As a 25-year-old I naturally assumed they were just stupid. As a 40-year-old I now see them as trapped. Very smart, capable people, stuck within a system that seems built to frustrate and block them from actually Making Their Computers Do Useful Things for Other People.&lt;br /&gt;&lt;br /&gt;The genesis of the enterprise IT homunculus seems semi-explainable. If you put a large collection of detail oriented control freaks (hello, computer people) into a single organization, the need of the (detail oriented, control freak) management to avoid non-linearity in their organization will naturally lead to layer upon layer of process and reporting. Otherwise, how can the CIO sleep at night?&lt;br /&gt;&lt;br /&gt;But even if the genesis is explainable, that still doesn't make the result good, or the end state desirable. This is still a system wasting the potential of the greater number of its participants.  The non-technical masters of these organizations (CEOs, other upper managers) see clearly that they are broken (they manifestly cannot deliver), but the fixes only seem to make things worse: my organization is broken, so I'll outsource to another organization; my organization is broken, so I'll bring in consultants (who carry the same organizational biases); my organization is broken, so I'll go ISO9000 (embrace the disfunction!).&lt;br /&gt;&lt;br /&gt;The British Columbia government seems to be in the middle of the outsourcing "fix" right now. The remains of the central IT department are being reviewed for their incredibly high internal pricing, and meanwhile major server and network infrastructure is being outsourced to HP and shipped out of province. The irony is that, should the central IT department be found to be "too inefficient" the "solution" will be another round of outsourcing to a contractor who will end up being (contractually) largely immune to any review.&lt;br /&gt;&lt;br /&gt;I think we are only a few years from a serious IT revolution in the provincial government, and by revolution I mean the peasants are going to take up their pitchforks and torches and storm the keep.  More on that tomorrow.&lt;br /&gt;&lt;br /&gt;In the meanwhile, I am collecting stories of IT transformations that have actually worked. It seems like there are very few if any stories out there. The super-star CIOs seem to rely on various combinations of smoke and mirrors to burnish their reputations, very few seem to have attacked the root of the IT cultures in their organizations. But I would love to hear some stories about those who did and succeeded (or failed).&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2289366498162494393?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2289366498162494393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2289366498162494393' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2289366498162494393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2289366498162494393'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/06/broken-enterprise-it.html' title='Broken Enterprise IT'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5358885547190471425</id><published>2011-05-05T08:58:00.000-07:00</published><updated>2011-05-05T09:09:51.523-07:00</updated><title type='text'>Keynote May</title><content type='html'>It's a little too late now to promote my keynote presentation at ASPRS 2011, since I already gave it on Tuesday.... but! I can still promote my &lt;a href="http://www.pgcon.org/2011/schedule/events/373.en.html"&gt;upcoming keynote at PgCon&lt;/a&gt;, which I'm looking forward to immensely (and getting nervous about in equal measure).&lt;br /&gt;&lt;br /&gt;The ASPRS talk went well (I thought), delivering a little capsule history of open source and reasons why managers might (should) want to start adopting it (I had to shorten my &lt;a href="http://s3.cleverelephant.ca/duluth-2010-keynote.pdf"&gt;Duluth version of the talk&lt;/a&gt; a bit to fit the ASPRS time slot). The &lt;a href="http://twitter.com/daviddibiase/status/65429686360088577"&gt;reviews&lt;/a&gt; &lt;a href="http://twitter.com/Wiscmapper/status/65424236768014337"&gt;afterwards&lt;/a&gt; &lt;a href="http://twitter.com/jarlathond/status/65413242075361280"&gt;were&lt;/a&gt; &lt;a href="http://twitter.com/jarlathond/status/65544025347854336"&gt;positive&lt;/a&gt; (Twitter is an attention-hog's wet dream (said the attention-hog)).&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.pgcon.org/"&gt;PgCon&lt;/a&gt; talk will be a new challenge. I'm usually generalizing my technical knowledge &lt;span style="font-style:italic;"&gt;up&lt;/span&gt; for a less specialized audience of geo-people. But for PgCon I have to narrow and focus my general geo-knowledge down for a very specialized audience of PostgreSQL database developers. Having a room full of the foremost experts and developers of PostgreSQL to talk to is the most daunting audience I've faced since my graduate oral exams. &lt;br /&gt;&lt;br /&gt;However, my reward after the keynote will be &lt;a href="http://www.pgcon.org/2011/schedule/index.en.html"&gt;two days of attending talks&lt;/a&gt; by those same foremost experts, so I'm really looking forward to PgCon! Hope to see you there!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5358885547190471425?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5358885547190471425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5358885547190471425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5358885547190471425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5358885547190471425'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/05/keynote-may.html' title='Keynote May'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5114831045286297330</id><published>2011-02-18T16:37:00.000-08:00</published><updated>2011-02-18T16:40:43.311-08:00</updated><title type='text'>Spatial Partitioning in PostGIS</title><content type='html'>I've been meaning for a long time to see what an implementation of spatial partitioning in PostGIS would look like, and a trip next week to the Center for Topographic Information in Sherbrooke had given me the excuse to try a toy implementation.&lt;br /&gt;&lt;br /&gt;Imaging map data constrained to a 1km square. Here is an example that partitions that square into a left- and right-side, and then inserts the data appropriately into the right table as it comes in. Features that straddle the two halves get put into a third special-case table for handling overlaps.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;-- parent table&lt;br /&gt;create table km (&lt;br /&gt;id integer,&lt;br /&gt;geom geometry&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;-- left side&lt;br /&gt;create table km_left(&lt;br /&gt;check ( _st_contains(st_makeenvelope(0,0,500,1000,-1),geom ) )&lt;br /&gt;) inherits (km);&lt;br /&gt;&lt;br /&gt;-- right side&lt;br /&gt;create table km_right(&lt;br /&gt;check ( _st_contains(st_makeenvelope(500,0,1000,1000,-1),geom ) )&lt;br /&gt;) inherits (km);&lt;br /&gt;&lt;br /&gt;-- border overlaps&lt;br /&gt;create table km_overlaps(&lt;br /&gt;check ( _st_intersects(st_makeline(st_makepoint(500,0),st_makepoint(500,1000)),geom ) )&lt;br /&gt;) inherits (km);&lt;br /&gt;&lt;br /&gt;-- indexes&lt;br /&gt;create index km_left_gix on km_left using gist (geom);&lt;br /&gt;create index km_right_gix on km_right using gist (geom);&lt;br /&gt;create index km_overlaps_gix on km_overlaps using gist (geom);&lt;br /&gt;&lt;br /&gt;-- direct insert to appropriate table&lt;br /&gt;CREATE OR REPLACE FUNCTION km_insert_trigger()&lt;br /&gt;RETURNS TRIGGER AS $$&lt;br /&gt;BEGIN&lt;br /&gt;    IF ( _st_contains(st_makeenvelope(0,0,500,1000,-1),NEW.geom) ) THEN&lt;br /&gt;    INSERT INTO km_left VALUES (NEW.*);&lt;br /&gt;    ELSIF ( _st_contains(st_makeenvelope(500,0,1000,1000,-1),NEW.geom) ) THEN&lt;br /&gt;    INSERT INTO km_right VALUES (NEW.*);&lt;br /&gt;    ELSEif ( _st_intersects(st_makeline(st_makepoint(500,0),st_makepoint(500,1000)),NEW.geom) ) THEN&lt;br /&gt;    INSERT INTO km_overlaps VALUES (NEW.*);&lt;br /&gt;    ELSE&lt;br /&gt;    RAISE EXCEPTION 'Geometry out of range.';&lt;br /&gt;    END IF;&lt;br /&gt;    RETURN NULL;&lt;br /&gt;END;&lt;br /&gt;$$&lt;br /&gt;LANGUAGE plpgsql;&lt;br /&gt;&lt;br /&gt;CREATE TRIGGER insert_km_trigger&lt;br /&gt;    BEFORE INSERT ON km&lt;br /&gt;    FOR EACH ROW EXECUTE PROCEDURE km_insert_trigger();&lt;br /&gt;&lt;br /&gt;-- add some data&lt;br /&gt;insert into km (id, geom) values (1, 'POINT(50 50)');&lt;br /&gt;insert into km (id, geom) values (2, 'POINT(550 50)');&lt;br /&gt;insert into km (id, geom) values (3, 'LINESTRING(250 250, 750 750)');&lt;br /&gt;&lt;br /&gt;-- see where it lands&lt;br /&gt;select * from km;&lt;br /&gt;select * from km_right;&lt;br /&gt;select * from km where st_contains('POLYGON((20 20,20 60,60 60,60 20,20 20))',geom);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It's still a toy, I need to put more data in it and see how well the indexes and constraint exclusion mechanisms actually work in this case.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5114831045286297330?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5114831045286297330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5114831045286297330' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5114831045286297330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5114831045286297330'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/02/spatial-partitioning-in-postgis.html' title='Spatial Partitioning in PostGIS'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2367954204533013485</id><published>2011-01-25T14:58:00.000-08:00</published><updated>2011-01-27T09:58:14.614-08:00</updated><title type='text'>ESRI FGDB API: No Servers need Apply</title><content type='html'>&lt;img src="http://resources.arcgis.com/sites/default/files/images/fileAPI2.png" style="float:right; width:150px; padding: 5px;"/&gt;When downloading the ESRI &lt;a href="http://resources.arcgis.com/content/geodatabases/10.0/file-gdb-api"&gt;file-based geodatabase API&lt;/a&gt; you are required to accept a license agreement which includes this lovely clause in the section about acceptabe uses of the API:&lt;br /&gt;&lt;blockquote&gt;"Single Use License." Licensee may permit a single authorized end user to install and use the Software, Data, and Documentation on a single computer for use by that end user on the computer on which the Software is installed. Remote access is not permitted. Licensee may permit the single authorized end user to make a second copy for end user's exclusive use on a portable computer as long as only one (1) copy of the Software, Data, and Documentation is in use at any one (1) time. No other end user may use the Software, Data, or Documentation under the same license at the same time for any other purpose.&lt;/blockquote&gt;Note, only &lt;b&gt;one user&lt;/b&gt; may use the software, and &lt;b&gt;remote access is not permitted&lt;/b&gt;. That is, you can't run a mapping server on top of this API, because then multiple users would be using it, remotely.  Impressive.  Point to Redlands.  I will console myself in the usual way: "better than nothing."&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Martin Daly asked me to take a second look, and someone Twittered asking if the clause was boilerplate. On second examination, it could simply be boilerplate used for other desktop-oriented software that has been used without thought as to how it muddies the uses for non-desktop systems. The &lt;a href="http://resources.arcgis.com/node/agreement/3193"&gt;full text is here&lt;/a&gt; for those with ESRI logins. Never attribute to malice what you can attribute to accident, another good rule to live by (but how empty I would be without my little conspiracy theories!). The precautionary principle would dictate not web-serving with it until/unless it is clarified, but in the meanwhile bulk loaders and translators could certainly be put together.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 2:&lt;/b&gt; Though the I find the license language somewhat unclear, &lt;a href="http://forums.arcgis.com/threads/22027-FGDB-licensing-for-servers?p=71967"&gt;the intent appears to be to allow any application&lt;/a&gt; to sit on top of the API. Crisis averted, situation normal.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 3:&lt;/b&gt; Just got off the plane and the ESRI folks have left me a nice voice mail explaining that the intent of the clause is with respect to developers downloading it (once, for one person) not for uses of derived products. The moral of the story is that ESRI people are pretty darn nice, and I am not so very nice. Something for me to work on in the new year.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 4:&lt;/b&gt; Received email from ESRI confirming that the final license will be reviewed to ensure there are no ambiguities and that it reflects their intent that the API be usable by &lt;b&gt;any&lt;/b&gt; application in &lt;b&gt;any&lt;/b&gt; application category and the derived product freely redistributable and royalty free. So to the extent that the current license has any ambiguity it shouldn't be considered a red flag that the final one will.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2367954204533013485?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2367954204533013485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2367954204533013485' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2367954204533013485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2367954204533013485'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/01/esri-fgdb-api-no-servers-need-apply.html' title='ESRI FGDB API: No Servers need Apply'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2669016935879691217</id><published>2011-01-13T10:35:00.000-08:00</published><updated>2011-01-13T11:10:06.626-08:00</updated><title type='text'>BC: Power up your Vote!</title><content type='html'>I gave this spiel at the &lt;a href="http://www.meetup.com/Victoria-GeoGeeks/"&gt;Victoria GeoGeeks&lt;/a&gt; meet-up last week, but it's worth giving to the world at large: if you want your vote to count in choosing your representatives, exercise it at every opportunity! For those in the USA, that means participating in primary elections, and for us in British Columbia right now that means participating in the party leadership contests.&lt;br /&gt;&lt;br /&gt;When you participate in early elections like primaries or leadership races, &lt;b&gt;your vote gets more powerful&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;In the last British Columbia election (2009) 1,651,567 people voted to choose the government. But they didn't get to choose the Premier, they just got to choose the party or local candidate. The next Premier of BC will be the leader of either the BC Liberals or the BC NDP. The combined membership of those races will probably be on the order of 60 thousand. So a vote cast in the leadership contests is about &lt;b&gt;27 times more determinative&lt;/b&gt; of who will be the Premier than a General Election vote.&lt;br /&gt;&lt;br /&gt;Who wouldn't want their vote to be &lt;b&gt;27 times&lt;/b&gt; more powerful?!? But here's the rub: only party members get to vote.&lt;br /&gt;&lt;br /&gt;For the BC Liberals, the election will occur on February 26, but the cut-off for membership is &lt;b&gt;5PM on February 4&lt;/b&gt;. You can &lt;a href="http://www.bcliberals.com/take_action/volunteer,_join_the_party/join_the_bc_liberal_party_online"&gt;sign-up online here&lt;/a&gt; ($10 annual membership).&lt;br /&gt;&lt;br /&gt;For the BC New Democrats, the election will occur on April 17, but the cut-off is &lt;b&gt;midnight on January 17&lt;/b&gt;, and you can &lt;a href="https://www.gifttool.com/donations/Donate?ID=176&amp;AID=631&amp;list=monthly"&gt;sign-up online here&lt;/a&gt; ($10 minimum donation).&lt;br /&gt;&lt;br /&gt;If you live in BC, this is your chance to have an outsized influence on who makes the decisions for our future. Get to it! &lt;a href="http://www.horganforbc.ca/"&gt;I have!&lt;/a&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2669016935879691217?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2669016935879691217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2669016935879691217' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2669016935879691217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2669016935879691217'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/01/bc-power-up-your-vote.html' title='BC: Power up your Vote!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5820882981199849588</id><published>2011-01-11T09:49:00.001-08:00</published><updated>2011-01-11T09:59:46.084-08:00</updated><title type='text'>We interrupt this geeky spring...</title><content type='html'>&lt;a href="http://www.horganforbc.ca"&gt;&lt;img src="http://profile.ak.fbcdn.net/hprofile-ak-snc4/hs714.ash1/161937_180108545355653_817305_n.jpg" style="float:right; padding:5px;"&gt;&lt;/a&gt;To do something completely different. British Columbia, my fair home, is in the midst of an odd period where both major parties are having leadership races. The race for my party of choice (the NDP) has just gotten started, and I believe that pitching in early for what you believe in is a way to have maximum effect. So I'm spending my spring working as much as possible for &lt;a href="http://www.horganforbc.ca"&gt;John Horgan&lt;/a&gt;. John's someone who reflects my belief nobody has all the right answers, and he's someone with the personal skills (that I envy) to both listen for the answers and bring folks together around a common direction. And he's fun to be around, which is a nice bonus.&lt;br /&gt;&lt;br /&gt;Unfortunately for &lt;a href="http://postgis.org/"&gt;PostGIS&lt;/a&gt;, time doing campaign work takes from time spent on PostGIS 2.0, so unless another PSC member has an equal and opposite infusion of time to mine, things will slow down a bit for the next couple months. I'll still be going to the &lt;a href="http://wiki.osgeo.org/wiki/Montreal_Code_Sprint_2011"&gt;Montreal code sprint&lt;/a&gt; though: some things are sacrosanct.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5820882981199849588?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5820882981199849588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5820882981199849588' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5820882981199849588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5820882981199849588'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2011/01/we-interrupt-this-geeky-spring.html' title='We interrupt this geeky spring...'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5794128907660448663</id><published>2010-12-30T21:58:00.001-08:00</published><updated>2010-12-30T22:03:31.501-08:00</updated><title type='text'>Victoria GeoGeeks!</title><content type='html'>The Victoria geo-geeks are &lt;a href="http://www.meetup.com/Victoria-GeoGeeks/calendar/15625902/"&gt;meeting again next week&lt;/a&gt;, on Thursday, January 6, at 6pm at the offices of &lt;a href="http://latitudegeo.com"&gt;Latitude Geographics&lt;/a&gt;. We'll be hearing from four speakers, on the topics of &lt;a href="http://google-latlong.blogspot.com/2010/02/mapping-your-data-with-google-fusion.html"&gt;Google Fusion Tables&lt;/a&gt; and &lt;a href="http://resource.org/8_principles.html"&gt;Open (Geo) Data in Government&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Google Fusion Tables, Intro and Demo - Josh Livni, Google Outreach Engineer (30m) &lt;li&gt;Open (Geo) Data in BC - Herb Lainchbury and Greg Lawrence (25m) &lt;li&gt;Open (Geo) Data Rebuttal - Mark Sondheim (5m) &lt;/ul&gt;&lt;br /&gt;Hope to see all you Victoria geo-geeks there!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5794128907660448663?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5794128907660448663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5794128907660448663' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5794128907660448663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5794128907660448663'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/12/victoria-geogeeks.html' title='Victoria GeoGeeks!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8821408962584031694</id><published>2010-11-22T15:14:00.001-08:00</published><updated>2010-11-22T15:24:31.240-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgis'/><category scheme='http://www.blogger.com/atom/ns#' term='jts'/><category scheme='http://www.blogger.com/atom/ns#' term='buffer'/><title type='text'>Removing Complexities</title><content type='html'>My co-worker Alyssa Wright just asked me an interesting question: Vancouver Island is a pretty crinkley island, how would we simplify it to remove the crinkley bits?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/5199928430/" title="Original Island by pwramsey3, on Flickr"&gt;&lt;img src="http://farm6.static.flickr.com/5207/5199928430_eee923c599_m.jpg" width="240" height="183" alt="Original Island" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Notice the big fjords and other fine work by &lt;a href="http://en.wikipedia.org/wiki/Slartibartfast"&gt;Slartibartfast&lt;/a&gt;. &lt;a href="http://postgis.org/documentation/manual-svn/ST_Simplify.html"&gt;ST_Simplify&lt;/a&gt; will not do what we need, since it removes &lt;em&gt;redundant&lt;/em&gt; vertices within a tolerance. So the fjords will have fewer vertices, but they'll still be there.&lt;br /&gt;&lt;br /&gt;However, it turns out there is a solution, and I didn't even need a long walk in the snow to figure it out. If we buffer by a large amount, then reverse the buffer by the same amount, we'll get something that has a similar shape to the original, but without the crinkly bits.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/5199334325/" title="Buffered by 4km by pwramsey3, on Flickr"&gt;&lt;img src="http://farm6.static.flickr.com/5208/5199334325_34346f3c4c_m.jpg" width="240" height="185" alt="Buffered by 4km" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Buffer out, and the crinkley bits get melted away. But now the island is too big. So buffer inwards.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/5199334381/" title="Negative Buffer by 4km by pwramsey3, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4088/5199334381_814ba89170_m.jpg" width="240" height="184" alt="Negative Buffer by 4km" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And now we have something we can use. We could now even run ST_Simplify on this result to drop some unneeded vertices and make it smaller yet.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/5199928610/" title="Simple Island by pwramsey3, on Flickr"&gt;&lt;img src="http://farm6.static.flickr.com/5002/5199928610_6883ab9265_m.jpg" width="240" height="186" alt="Simple Island" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking closer, you can see how we have melted away all the crinkley bits while still following the original (mostly). Note that the new shape is still a strict superset of the original.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/5199951910/" title="Saanich Peninsula by pwramsey3, on Flickr"&gt;&lt;img src="http://farm6.static.flickr.com/5083/5199951910_619d381539_m.jpg" width="240" height="212" alt="Saanich Peninsula" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8821408962584031694?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8821408962584031694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8821408962584031694' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8821408962584031694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8821408962584031694'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/11/removing-complexities.html' title='Removing Complexities'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm6.static.flickr.com/5207/5199928430_eee923c599_t.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-160838044753161051</id><published>2010-11-16T16:07:00.000-08:00</published><updated>2010-11-16T16:10:56.071-08:00</updated><title type='text'>FOI @ OpenGov BC</title><content type='html'>This is what I did last Wednesday while recovering from my Japanese jet-lag: panel wrangling at &lt;a href="http://opengovwest.org/open-gov-bc/"&gt;OpenGovWest BC&lt;/a&gt;. Probably the easiest moderating session I'll ever get, four FOI superstars, just wind them up and let them go.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://player.vimeo.com/video/16877905" width="500" height="375" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/16877905"&gt;Freedom of Information (FOI) panel&lt;/a&gt; from &lt;a href="http://vimeo.com/user5236176"&gt;opengovwestbc&lt;/a&gt;.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-160838044753161051?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/160838044753161051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=160838044753161051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/160838044753161051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/160838044753161051'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/11/foi-opengov-bc.html' title='FOI @ OpenGov BC'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3406243596596352422</id><published>2010-11-15T16:01:00.000-08:00</published><updated>2010-11-29T13:51:05.488-08:00</updated><title type='text'>Victoria GeoGeeks Meetup</title><content type='html'>&lt;b&gt;Update:&lt;/b&gt; Twelve people RSVP'ed so far for &lt;a href="http://www.meetup.com/Victoria-GeoGeeks/calendar/15458443/"&gt;this month's meet&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;If you live in Victoria, BC, and you love geotechnology, I hope you'll join the &lt;a href="http://www.meetup.com/Victoria-GeoGeeks/"&gt;monthly geogeekery meetup&lt;/a&gt; we are starting. The first Thursday of every month, at the Sticky Wicket pub. Our first gathering will be December 2, see you there!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3406243596596352422?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3406243596596352422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3406243596596352422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3406243596596352422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3406243596596352422'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/11/victoria-geogeeks-meetup.html' title='Victoria GeoGeeks Meetup'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-594849150494443325</id><published>2010-11-05T16:35:00.001-07:00</published><updated>2010-11-05T16:42:00.820-07:00</updated><title type='text'>Cool Japanese Things #4</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;b&gt;All you can eat/drink reception.&lt;/b&gt; You have two and a half hours.... go!&lt;/li&gt;&lt;li&gt;&lt;b&gt;Fast trains.&lt;/b&gt; Because faster is better. Really.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Vending machine restaurants.&lt;/b&gt; No wait staff, you purchase your order from a vending machine, which gives you tickets you hand to the cooks. Order up!&lt;/li&gt;&lt;li&gt;&lt;b&gt;Cheap food.&lt;/b&gt; If not cheap, at least not expensive, dinner out at Osaka pub with slightly more sake than I could handle and full up on (over-the-moon tasty) snack/tapas plates for about $40.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-594849150494443325?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/594849150494443325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=594849150494443325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/594849150494443325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/594849150494443325'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/11/cool-japanese-things-4.html' title='Cool Japanese Things #4'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-7781068074971612182</id><published>2010-11-01T07:45:00.000-07:00</published><updated>2010-11-01T07:49:23.603-07:00</updated><title type='text'>Cool Japanese Things #3</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;b&gt;Umbrella lockers.&lt;/b&gt; In the art museum, there are standard left lockers for storing your bags and coats, but also little vertical lockers for locking up your umbrella while you tour the building! Is this a rainy city? I am thinking, yes.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Vertical gas station.&lt;/b&gt; Why waste space with gas pumps at ground level when you can just hang the filling hoses down from the ceiling? Hai!&lt;/li&gt;&lt;li&gt;&lt;b&gt;Blogging from the car.&lt;/b&gt; Taichi has a mifi box, so the laptop works even while we are travelling underneath the triple-decker freeway, heading back to the guesthouse. Zoom zoom zoom.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-7781068074971612182?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/7781068074971612182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=7781068074971612182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7781068074971612182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7781068074971612182'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/11/cool-japanese-things-3.html' title='Cool Japanese Things #3'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8161505024327371542</id><published>2010-10-31T17:49:00.000-07:00</published><updated>2010-10-31T17:55:05.970-07:00</updated><title type='text'>Cool Japanese Things #2</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;b&gt;Talks with lots of demos.&lt;/b&gt; When you can't understand the words, nothing talks like demos! I learned about bits of HTML5 for rendering, orientation sensors, location awareness and drag-and-drop! &lt;/li&gt;&lt;li&gt;&lt;b&gt;Rice for breakfast.&lt;/b&gt; Wrapped in a belt of seaweed to hold it together, a patty of rice about the size of a hockey puck is not that different from a breakfast roll. Should have gotten two.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Insane double decker freeways.&lt;/b&gt; Running through a canyon of buildings, there's something very blade-runnerish about the multi-level freeways. How far away is the ground?&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Only one not-cool thing, being away from home on Halowe'en. Family is gathered to have wine and snacks right about now and the kids are bouncing off the walls getting ready to head out. Wish I was there.&lt;br /&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8161505024327371542?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8161505024327371542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8161505024327371542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8161505024327371542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8161505024327371542'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/10/cool-japanese-things-2.html' title='Cool Japanese Things #2'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3464527595086957777</id><published>2010-10-30T15:49:00.001-07:00</published><updated>2010-10-30T19:23:25.372-07:00</updated><title type='text'>Cool Japanese Things #1</title><content type='html'>I am going to feel the lack of a camera on this trip. I didn't even bother to bring my phone because it would have been a functionless brick.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Techno toilet seats.&lt;/b&gt; The one in the hotel had an explanation printed on it about why it was &lt;em&gt;not&lt;/em&gt; heated. Nonetheless it still had three knobs. There is much more to learn about Japanese toilet seats. Looking forward to it.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Defogged mirror.&lt;/b&gt; I took a hot shower, got out, and there was a neat square of unfogged mirror area right over the sink! Touch it, yes, it's warmed from behind to keep the class clear of condensation.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Hotel kimono.&lt;/b&gt; I don't feel like getting dressed yes, and I don't feel like sitting around writing blog posts in the nude. Enter the hotel kimono! It's a little short for me, but that's OK.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Taxi seats with doilies.&lt;/b&gt; Taxi this morning had pretty white lace doilies on the backs of the seats. Also a pristine white seat cover on the back. Curiously despite being lovingly cared for the car itself looked like it dated from 1989.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3464527595086957777?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3464527595086957777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3464527595086957777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3464527595086957777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3464527595086957777'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/10/cool-japanese-things-1.html' title='Cool Japanese Things #1'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6222963580447960215</id><published>2010-10-19T12:58:00.001-07:00</published><updated>2010-10-19T13:02:21.715-07:00</updated><title type='text'>OpenGovWest BC</title><content type='html'>&lt;img src="http://opengovwest.org/wp-content/uploads/2010/05/OGWBC-300x175.png" style="float:right;"/&gt;There's an open government conference coming up next month, on November 10 at the University of Victoria: &lt;a href="http://opengovwest.org/open-gov-bc/"&gt;OpenGovWest BC&lt;/a&gt;! We are gathering some great local stories, from Vancouver and the Provincial and Federal governments, and a great group of attendees &amp;mdash; the kinds of folks looking to change the way government works. If you're in the area and want to join in, I encourage you to  &lt;a href="http://ogwbc.eventbrite.com/?ref=ecount"&gt;register&lt;/a&gt; soon, the fee is nominal and the venue will fill up fast.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6222963580447960215?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6222963580447960215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6222963580447960215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6222963580447960215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6222963580447960215'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/10/opengovwest-bc.html' title='OpenGovWest BC'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4803293406955015956</id><published>2010-09-30T09:47:00.000-07:00</published><updated>2010-09-30T10:29:39.746-07:00</updated><title type='text'>PostGIS Back-up / Restore</title><content type='html'>A very common question on PostGIS in production is "how do I upgrade", which is actually a variant on "how do I backup and restore"?&lt;br /&gt;&lt;br /&gt;First, for patch version increases (e.g. X.Y.Z -&gt; X.Y.(Z+1)) in PostgreSQL and PostGIS you do not need to do anything at all other than install the new software. The data can remain in place and everything will Just Work.&lt;br /&gt;&lt;br /&gt;For minor version increases in PostgreSQL (e.g. X.Y.Z -&gt; X.(Y+1).Z) you need to dump and restore. For minor version increases in PostGIS, you need to do a "soft upgrade", which means leaving the data in place, but running the upgrade scripts (e.g. postgis_upgrade_14_to_15.sql) after you install the software update.&lt;br /&gt;&lt;br /&gt;Finally, for major version increases in PostgreSQL and PostGIS (e.g. X.Y.Z -&gt; (X+1).Y.Z) you need to dump and restore.&lt;br /&gt;&lt;br /&gt;Which brings me to the actual point I want to make: you can ensure the greatest ease in doing dump and restore of PostGIS data if you ensure that you store &lt;em&gt;no data&lt;/em&gt; in the "public" schema. &lt;br /&gt;&lt;br /&gt;The "public" schema is where the PostGIS functions and system tables get installed, so if you dump that schema you get all those definitions in your dump. If those definitions are mixed in amongst your data, loading them into a fresh database gets tricky: are the paths to the libraries the same? are there function name clashes? (The utils/postgis_restore.pl script attempts manfully to strip out PostGIS components from a dump file to allow a clean restore, but it is hard to get 100% performance.)&lt;br /&gt;&lt;br /&gt;If, on the other hand, all your data is neatly separated into its own schema, you can neatly backup &lt;em&gt;just that schema&lt;/em&gt; and avoid having PostGIS system information mixed in with your data. That means you can easily restore your data into &lt;em&gt;any version of PostGIS and PostgreSQL that you like&lt;/em&gt;. So upgrades are easy easy easy.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Remember: Store your data in a schema other than "public".&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;"But Paul," you say, "I already have a full database dump, does that mean I'm SOL?" No, but you will need a strong stomach. First, set up your new PostgreSQL. Create a blank database, load PostGIS into it. Now, load your backup file into that database. You &lt;strong&gt;will see lots of errors&lt;/strong&gt;. However, these errors will be caused by old PostGIS function and type definitions from your dump file conflicting with the existing type definitions in your database. And since you want the new definitions, not the old ones, that's OK. Your load, despite all the noise and errors, should actually work. Once it's done, you can move your data into a nice separate schema, so that &lt;em&gt;next time&lt;/em&gt; you can do a clean, error-free restore.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4803293406955015956?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4803293406955015956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4803293406955015956' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4803293406955015956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4803293406955015956'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/09/postgis-back-up-restore.html' title='PostGIS Back-up / Restore'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-9120730413709854208</id><published>2010-09-20T11:23:00.000-07:00</published><updated>2010-09-20T11:34:58.683-07:00</updated><title type='text'>WPS Smackdown</title><content type='html'>&lt;img src="http://www.prettytough.com/wp-content/uploads/2008/09/wps_logo.jpg" style="width:175px;float:right;"/&gt;I was a little surprised last week when Jody Garnett told me that the most contentious session of FOSS4G turned out to be the &lt;a href="http://2010.foss4g.org/presentations_show.php?id=3604"&gt;"WPS compliance testing"&lt;/a&gt; talk. Really? "Really", Jody insisted, "Voices were raised."&lt;br /&gt;&lt;br /&gt;Over web processing service (WPS) compliance? Well, we are all knee-jerk nerds, so I guess I shouldn't be surprised. The results were presented by just one WPS project, the 52North one, but tested a broad swathe of them. I think the lesson to be learned is that you should be careful testing other people's software, and even more careful when brandishing the results of those tests.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://wiki.osgeo.org/wiki/Benchmarking_2010"&gt;WMS benchmarking exercise&lt;/a&gt;, where each team runs their own service, seems like a better model, though demonstrably hard to coordinate in its own right.&lt;br /&gt;&lt;br /&gt;The ZooWPS team has now &lt;a href="http://lists.osgeo.org/pipermail/discuss/2010-September/007974.html"&gt;published their response&lt;/a&gt;, so if you are interested in WPS, here's a chance to dig deep into XML response payloads. Yum.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-9120730413709854208?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/9120730413709854208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=9120730413709854208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9120730413709854208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9120730413709854208'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/09/wps-smackdown.html' title='WPS Smackdown'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8675408147788699641</id><published>2010-09-20T09:39:00.000-07:00</published><updated>2010-09-20T09:43:46.486-07:00</updated><title type='text'>PostGIS 1.5.2rc1</title><content type='html'>The PostGIS web site is temporarily down, but the project team is pushing ahead (belatedly) with the 1.5.2 release series in the meanwhile. The reason we are not waiting is the same reason we are belated: 1.5.2 is required to run with PostgreSQL 9.0, which was freshly released recently (we should have released 1.5.2 a couple months ago, really). &lt;br /&gt;&lt;br /&gt;You can get the 1.5.2rc1 source code from the PostGIS issue tracking page and wiki: &lt;a href="http://trac.osgeo.org/postgis"&gt;http://trac.osgeo.org/postgis&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please test and post any issues as tickets, we are aiming to drop a final release pretty quickly. Try to confine yourself to posting deal-breaker tickets only.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8675408147788699641?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8675408147788699641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8675408147788699641' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8675408147788699641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8675408147788699641'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/09/postgis-152rc1.html' title='PostGIS 1.5.2rc1'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8314527770532707174</id><published>2010-08-20T16:28:00.001-07:00</published><updated>2010-08-20T16:30:26.568-07:00</updated><title type='text'>ST_Intersects and ST_Buffer: No</title><content type='html'>If you find yourself writing a query like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;... WHERE ST_Intersects(ST_Buffer(g1, r), g2)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Stop. Take a cleansing breath. Do this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;... WHERE ST_DWithin(g1, g2, r)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With the carbon emissions you save doing it the efficient way, you can afford to drive to the ice cream store for a well-deserved reward.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8314527770532707174?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8314527770532707174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8314527770532707174' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8314527770532707174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8314527770532707174'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/08/stintersects-and-stbuffer-no.html' title='ST_Intersects and ST_Buffer: No'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6716192016027858149</id><published>2010-08-16T11:18:00.000-07:00</published><updated>2010-08-16T11:19:58.335-07:00</updated><title type='text'>Calling all Technoweenies...</title><content type='html'>&lt;img src="http://s3.amazonaws.com/satisfaction-production/public/uploaded_images/3765416/opengeo_full_aspect_medium.png" style="float:right;"/&gt;Did you know that &lt;a href="http://opengeo.org/about/careers/software-engineer/"&gt;OpenGeo is hiring a software engineer&lt;/a&gt;? It's true. Let's build something beautiful together.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6716192016027858149?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6716192016027858149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6716192016027858149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6716192016027858149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6716192016027858149'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/08/calling-all-technoweenies.html' title='Calling all Technoweenies...'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-9220564513978512526</id><published>2010-08-06T15:51:00.000-07:00</published><updated>2010-08-07T15:03:03.784-07:00</updated><title type='text'>Take this Tree and Pack it</title><content type='html'>&lt;img src="http://4.bp.blogspot.com/_uYlrslhrgyY/SrvWIvKAeWI/AAAAAAAAABg/OJ25YFNVCN8/s400/packed.png" style="float:right; padding: 3px; width: 200px;"/&gt;Noticing this a little late, but have a peak at these posts from Chris Hodgson about how the R-Tree &lt;a href="http://cognitivelychris.blogspot.com/2008/10/nitpicking-pick-split.html"&gt;fails for variable density GIS&lt;/a&gt; data, and his &lt;a href="http://cognitivelychris.blogspot.com/2009/09/send-your-r-trees-packing.html"&gt;approach to a packing process&lt;/a&gt;.  Unfortunately, packing is a post-facto process, and it's not clear to me how we would do it with the GiST infrastructure that undergirds the PostGIS database. But it's nice to see a good R-Tree and a reminder of just how ugly they can get under the covers.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-9220564513978512526?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/9220564513978512526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=9220564513978512526' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9220564513978512526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9220564513978512526'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/08/take-this-tree-and-pack-it.html' title='Take this Tree and Pack it'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_uYlrslhrgyY/SrvWIvKAeWI/AAAAAAAAABg/OJ25YFNVCN8/s72-c/packed.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6902318530397733262</id><published>2010-07-27T09:29:00.001-07:00</published><updated>2010-07-27T09:31:44.607-07:00</updated><title type='text'>FOSS4G Reminder</title><content type='html'>&lt;a href="http://2010.foss4g.org/"&gt;&lt;img src="http://wiki.osgeo.org/images/thumb/d/d6/Foss4g2010_logo.jpg/180px-Foss4g2010_logo.jpg" style="float:right;padding:5px;" border="0" /&gt;&lt;/a&gt;OK, this is the last time I'm going to remind you: &lt;a href="http://2010.foss4g.org/"&gt;FOSS4G 2010&lt;/a&gt; is coming up fast. September 6-9 in Barcelona, Spain. The presentation call was massive (360 submissions for 120 slots) as was the workshop call. So register soon and make your hotel reservations while you can! That is all.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6902318530397733262?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6902318530397733262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6902318530397733262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6902318530397733262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6902318530397733262'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/07/foss4g-reminder.html' title='FOSS4G Reminder'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5949852898986113868</id><published>2010-07-22T08:11:00.000-07:00</published><updated>2010-07-22T09:38:52.506-07:00</updated><title type='text'>On Cable Modems</title><content type='html'>I had cable guys in my house turning on basic cable, and they noticed that my cable modem was old. When I say "old", I mean "I think I got it when we moved into the house almost 10 years ago". So they said, "here, have a new one". My maximum download speed quadrupled overnight. If you've got an old cable modem, figure an excuse to get a new one.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5949852898986113868?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5949852898986113868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5949852898986113868' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5949852898986113868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5949852898986113868'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/07/on-cable-modems.html' title='On Cable Modems'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1646776111192103355</id><published>2010-07-21T14:41:00.000-07:00</published><updated>2010-07-21T14:44:38.288-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgis'/><category scheme='http://www.blogger.com/atom/ns#' term='with recursive'/><category scheme='http://www.blogger.com/atom/ns#' term='recursion'/><title type='text'>Network Walking in PostGIS</title><content type='html'>One of the new features in PostgreSQL 8.4 was the &amp;#8220;WITH RECURSIVE&amp;#8221; clause available for queries. It allows you to define a subquery based on a recursive term &amp;#8212; fancy language for a function that calls itself. One of the favorite uses of recursion is walking a network. Geospatial applications use networks all the time: electrical grids, stream systems, and storm sewers are all directed networks (they have unidirectional flow).&lt;br /&gt;&lt;br /&gt;Here&amp;#8217;s an example of network walking using a simple collection of segments. As is common in many GIS applications, the segment are implicitly connected &amp;#8212; their end points are coincident with the start points of other segments.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;CREATE TABLE network ( segment geometry, id integer primary key );&lt;br /&gt;&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(1 1, 0 0)', 1);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(2 1, 1 1)', 2);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(1 2, 1 1)', 3);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(3 1, 2 1)', 4);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(3 2, 2 1)', 5);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(2 3, 1 2)', 6);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(1 3, 1 2)', 7);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(4 2, 3 2)', 8);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(3 4, 2 3)', 9);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(2 4, 2 3)', 10);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(1 4, 1 3)', 11);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(4 3, 4 2)', 12);&lt;br /&gt;INSERT INTO network VALUES ('LINESTRING(4 4, 3 4)', 13);&lt;br /&gt;&lt;br /&gt;CREATE INDEX network_gix ON network USING GIST (segment);&lt;/pre&gt;&lt;br /&gt;Visually, the network looks like this:&lt;br /&gt;&lt;br /&gt;&lt;img class="alignnone size-full wp-image-892" title="Network" src="http://blog.opengeo.org/wp-content/uploads/2010/07/screenshot_01.png" alt="Network" width="332" height="334" /&gt;&lt;br /&gt;&lt;br /&gt;To walk our network, use a WITH clause that starts with one segment, then repeatedly adds the next downstream segment to the collection. In our case, the &amp;#8220;next downstream segment&amp;#8221; is defined as a segment whose start point is close to the end point of the current segment. We&amp;#8217;ll walk down from segment 6.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;WITH RECURSIVE walk_network(id, segment) AS (&lt;br /&gt;    SELECT id, segment FROM network WHERE id = 6&lt;br /&gt;  UNION ALL&lt;br /&gt;    SELECT n.id, n.segment&lt;br /&gt;    FROM network n, walk_network w&lt;br /&gt;    WHERE ST_DWithin(ST_EndPoint(w.segment),ST_StartPoint(n.segment),0.01)&lt;br /&gt;  )&lt;br /&gt;SELECT id&lt;br /&gt;FROM walk_network&lt;/pre&gt;&lt;br /&gt;Which returns:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt; id&lt;br /&gt;----&lt;br /&gt;  6&lt;br /&gt;  3&lt;br /&gt;  1&lt;br /&gt;(3 rows)&lt;/pre&gt;&lt;br /&gt;From 6 to 3 to 1, correct! Once we have our walker producing the results we want, we can wrap more PostGIS and PostgreSQL functions around the walker to produce a finished product. Here&amp;#8217;s a function that takes in an edge identifier and outputs a linestring based on the downstream path.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;CREATE OR REPLACE FUNCTION downstream(integer)&lt;br /&gt;RETURNS geometry&lt;br /&gt;LANGUAGE sql&lt;br /&gt;AS '&lt;br /&gt;WITH RECURSIVE walk_network(id, segment) AS (&lt;br /&gt;    SELECT id, segment FROM network WHERE id = $1&lt;br /&gt;  UNION ALL&lt;br /&gt;    SELECT n.id, n.segment&lt;br /&gt;    FROM network n, walk_network w&lt;br /&gt;    WHERE ST_DWithin(ST_EndPoint(w.segment),ST_StartPoint(n.segment),0.01)&lt;br /&gt;  )&lt;br /&gt;SELECT ST_MakeLine(ST_EndPoint(segment))&lt;br /&gt;FROM walk_network&lt;br /&gt;' IMMUTABLE;&lt;/pre&gt;&lt;br /&gt;And here&amp;#8217;s the function in action, generating the downstream path from segment 12.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;=# SELECT ST_AsText(Downstream(12));&lt;br /&gt;&lt;br /&gt;            st_astext&lt;br /&gt;---------------------------------&lt;br /&gt; LINESTRING(4 2,3 2,2 1,1 1,0 0)&lt;br /&gt;(1 row)&lt;/pre&gt;&lt;br /&gt;Check the generated path against our network picture &amp;#8212; looks good!&lt;br /&gt;&lt;br /&gt;&lt;img class="alignnone size-full wp-image-893" title="Path 12" src="http://blog.opengeo.org/wp-content/uploads/2010/07/screenshot_02.png" alt="Path 12" width="339" height="334" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1646776111192103355?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1646776111192103355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1646776111192103355' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1646776111192103355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1646776111192103355'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/07/network-walking-in-postgis.html' title='Network Walking in PostGIS'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8233716632899805469</id><published>2010-07-07T11:28:00.000-07:00</published><updated>2010-07-07T11:33:47.827-07:00</updated><title type='text'>SXSW Geo in a Nutshell</title><content type='html'>From &lt;a href="http://my.sxsw.com/events/event/7429"&gt;Mapping and Geolocation: Turnkey Approaches You Need to Know&lt;/a&gt; [&lt;a href="http://audio.sxsw.com/2010/podcasts/031610i_MappingandGeolocation.mp3"&gt;MP3&lt;/a&gt;] at 19:55.&lt;blockquote&gt;I think that, at least for us here [at SXSW] this week, Foursquare and Gowalla have been at the center of the universe for a little while.&lt;br/&gt;&lt;br/&gt;And I think that [is because] it is something to do with the fact that it's been a problem we've been trying to solve forever. You know you've been thinking "wouldn't it be great if I knew where my friends are so I could find them and we could hang out more" for years and so now this is finally here.&lt;br/&gt;&lt;br/&gt;So not only is it an easy way to do something, and solves a problem that we we've been trying to fix forever, it's the first time that location is kind of useful beyond maps. Everyone understands that you need location in maps, because you have to get from point A to point B … I want to know where I am so I can broadcast it, because it's cool that I go to cool conferences (um, isn't it?), and I want my friends to know where I am, and I want to be able to find where they are.&lt;/blockquote&gt;I'm over the hill and I'm not even 40. Now get the hell off my lawn!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8233716632899805469?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8233716632899805469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8233716632899805469' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8233716632899805469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8233716632899805469'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/07/sxsw-geo-in-nutshell.html' title='SXSW Geo in a Nutshell'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6289481948845484654</id><published>2010-06-29T11:24:00.000-07:00</published><updated>2010-06-30T11:04:27.234-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tired'/><category scheme='http://www.blogger.com/atom/ns#' term='introversion'/><category scheme='http://www.blogger.com/atom/ns#' term='foocamp'/><title type='text'>How to Survive Foo Camp (Introvert Edition)</title><content type='html'>I just read the &lt;a href="http://www.scottberkun.com/blog/2010/what-i-learned-at-foo-camp-10/"&gt;2010 edition&lt;/a&gt; of Scott Berkun's regular &lt;a href="http://en.wikipedia.org/wiki/Foo_Camp"&gt;Foo Camp&lt;/a&gt; review. It's very good, and makes me want to amplify a couple points for future, introverted attendees.&lt;br /&gt;&lt;br /&gt;First, the social dynamics are much as he describes, although I would certainly not argue as he does that pretense is "eliminated". It is somewhat attenuated. The attending population can be segmented in lots of ways, but here's mine:&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td align="center"&gt;Foo Regulars&lt;/td&gt;&lt;td align="center"&gt;Foo Newbies&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center"&gt;Extroverts&lt;/td&gt;&lt;td align="center"&gt;Introverts&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Extroverts should have a grand time, lots of people to talk to. Regular attending introverts can lean on existing acquaintances when burnt out. But if you, like me, are an introvert, and you aren't part of the "in group" of repeat attendees, you may find yourself feeling socially isolated and very very tired, in the midst of a happy group of very energetic people. You might begin to resent them.&lt;br /&gt;&lt;br /&gt;Foo is what it is, though. It is an opportunity to connect with some people you'd otherwise never meet, so all you can do is arm yourself before-hand with some tools and expectations to avoid having a negative experience.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Social Fatigue&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First of all, bad news, the Cocktail Party dynamic is going to be a major mode of interaction. "So, what do you do?" You're going to have to answer that (and ask that) a lot, and people will filter you based on your answer. It's best to have an answer that is interesting to a wide swathe of people outside your field. The population of askers will be intellectually sophisticated (Michael Arrington excluded) so the answers that generally work can be surprising. &lt;br /&gt;&lt;br /&gt;For me the general truth "I &lt;a href="http://opengeo.org/products/coredevelopment/postgis/"&gt;work for OpenGeo&lt;/a&gt; doing spatial database programming" was not effective at all. But a specific instance "I'm working on &lt;a href="http://blog.cleverelephant.ca/2009/11/postgis-gets-spherical-directors-cut.html"&gt;spherical geometry algorithms&lt;/a&gt; for location data" worked pretty well. (Unfortunately I was too dazed to really parse that fact until after I left.) Anyhow, on review, the second explanation has lots of potential follow-ups from "why?" for people who understand "location data" to "what's that?" for people who don't. The first explanation is too mushy.&lt;br /&gt;&lt;br /&gt;Back to the bad news. Because a lot of your interactions are going to be draining first encounters, you're going to run out of gas pretty fast. Find a seat by the fire, get a quiet corner, and don't feel guilty about not talking. You're tired. You can't. Go to bed early, it's OK &amp;ndash; the alternative is just going to make you feel worse.&lt;blockquote&gt;&lt;small&gt;&lt;b&gt;Note to Parents:&lt;/b&gt; Your early-to-bed-early-to-rise conditioning comes in handy sometimes. You can get up early, get a coffee, and join the &lt;em&gt;other parents&lt;/em&gt; for a quiet, introvert friendly, discussion around the fire pit while all the 20-something future masters of the universe are sleeping off their hangovers.&lt;/small&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;The "Formal" Program&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sessions are easy. There's structure, you can talk or not. For a first time attendee, I think this piece of wisdom on the Foo wiki ("Find people whose work you have no supposed interest in and go to their talks" -- &lt;a href="http://en.wikipedia.org/wiki/Chris_DiBona"&gt;Chris DiBona&lt;/a&gt;) is &lt;em&gt;absolutely wrong&lt;/em&gt;. &lt;br /&gt;&lt;br /&gt;You can bring the most value to the group, and meet the people who are going to be of most direct value to you in the future by going to sessions that are directly interesting to you, that fall in your area of expertise, that you have passion for. If you're going to Foo over and over again like Chris, then you have the luxury of sampling. I (foolishly) took the advice and missed going to database sessions with folks like &lt;a href="http://en.wikipedia.org/wiki/Brian_Aker"&gt;Brian Aker&lt;/a&gt;, who says something worth writing down (if you're a database geek) about every 30 seconds. Bad, bad decision on my part.&lt;blockquote&gt;&lt;small&gt;&lt;b&gt;Blowhards:&lt;/b&gt; There will be blowhards. Statistically speaking, the larger the session, the more likely there will be a blowhard in your session. &lt;a href="http://www.scottberkun.com/blog/2009/learned-at-foo-camp-09/"&gt;Scott Berkun's 2009 post&lt;/a&gt; mentions them, and I like his idea of the "anonymous gong" to help the blowhard achieve self-awareness.&lt;/small&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Bring a Pen and Paper&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Laptops and iPads are heavy and take time to start up and get into data entry mode. Paper is light and fast. There &lt;em&gt;will&lt;/em&gt; be names and ideas you want to remember.  Precisely when the nuggets fall from the sky is unpredictable, but you probably won't be sitting down with your device at the ready.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Celebrities&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Own your inferiority complex. Yes, you're inferior. Suck it up. Unfortunately, this is "do as I say, not as I do" advice, because I wasn't very good at it. &lt;br /&gt;&lt;br /&gt;I didn't tell Kathy Sierra that her &lt;a href="http://blog.businessofsoftware.org/2010/05/kathy-sierra-at-business-of-software-2009.html"&gt;2009 Business of Software&lt;/a&gt; talk is currently conditioning all my thinking about building the &lt;a href="http://opengeo.org/products/suite/"&gt;OpenGeo Suite&lt;/a&gt; materials. I just glanced at her out of the corner of my eye.&lt;br /&gt;&lt;br /&gt;I did, however, have a nice time talking with (well, listening to) &lt;a href="http://en.wikipedia.org/wiki/Mitch_Kapor"&gt;Mitch Kapor&lt;/a&gt;. Feed them some rope, provide them a context to tell you what's on their mind. A general request for advice on a general topic will usually do. I asked Kapor about economic development. I should have asked Sierra about our own product issues. &lt;blockquote&gt;&lt;small&gt;&lt;b&gt;Invisible Celebrities:&lt;/b&gt; I actually talked to &lt;a href="http://www.chaddickerson.com/"&gt;Chad Dickerson&lt;/a&gt;, but I never connected the dots until afterwards that he wrote the "CTO Corner" column in InfoWorld, back when it was a paper publication. That column was the only reason I kept receiving the magazine, it made me feel sane (I am not alone!) to be advocating open source, which was very much a minority position at the time. I would have liked to have told him that.&lt;/small&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Meeting People You Want To Meet&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you look at the list and see a name you absolutely want to meet, track them down ahead of time, get their contact information and then contact them &lt;em&gt;during the conference&lt;/em&gt; and arrange a time.&lt;br /&gt;&lt;br /&gt;The venue is deceptively intimate, but 250 people is a lot of people. You may not randomly run into the person you are looking for. You probably &lt;em&gt;will not&lt;/em&gt;. I was absolutely looking forward to talking with &lt;a href="http://www.pentaho.com/team/bio.php?bio=james_dixon"&gt;James Dixon&lt;/a&gt; about open source business models. I even staked out the main passage ways, during transition times. I did not see the man! (Here's where having one of those "iPhone" things would have been handy.)&lt;blockquote&gt;&lt;small&gt;&lt;b&gt;Surprising Social Norms:&lt;/b&gt; Either there is a Silicon Valley thing going on that I'm not acclimated to, or this behavior is a form of status advertisement for high status individuals, but a number of times I saw people &lt;em&gt;pull out their smart phones and check messages while other people were talking to them&lt;/em&gt;. I had not encountered this before, though I suppose it is just a variation on the equally noxious answering-your-cell-phone-in-the-middle-of-a-conversation. (Both should be grounds for an immediate caning.)&lt;/small&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;Us and Them&lt;/b&gt;&lt;br /&gt;&lt;blockquote&gt;People sometimes ask, "What can I do to be invited back?" and your best bet is to make a (positive) impression by engaging and presenting.&lt;br/&gt;&amp;mdash; Foo Camp Wiki&lt;/blockquote&gt;In general, it's going to be hard to make a good impression if you have no psychological energy. And it's difficult to plan for a session or an Ignite talk when you have no idea what the audience is going to find interesting.&lt;br /&gt;&lt;br /&gt;However, having seen the audience, I can now (post-facto (arg!)) offer a generic recipe for an interesting topic: something that is foundational in your specialty field but mostly unknown in the larger world. In my case a talk about general principles of geography, like &lt;a href="http://en.wikipedia.org/wiki/First_law_of_geography"&gt;Tobler's Law&lt;/a&gt; or the &lt;a href="http://en.wikipedia.org/wiki/Ecological_fallacy"&gt;ecological fallacy&lt;/a&gt; or some topical examples of &lt;a href="http://www.amazon.ca/How-Lie-Maps-Mark-Monmonier/dp/0226534219"&gt;how to lie with maps&lt;/a&gt; would have gone over well at Ignite. &lt;br /&gt;&lt;br /&gt;It's worth noting, given the mix of regular repeat attendees versus new attendees, that the criteria are not strictly meritocratic &amp;mdash; obviously you can also get invited back by being intrinsically "important" in some way to the O'Reilly organization. The "engaging and interesting" criterion is only applied to some.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;In Conclusion&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Like many of life's memorable experiences ("there was this time I hiked to the top of a mountain in the rain…"), there is a strong possibility that, as an introvert in a highly social milieu without a group of friends to lean on, you might find Foo Camp difficult and unenjoyable in the moment. You might want to leave, a lot of the time. But if you stick with it, you'll come out with some good memories and look back on it as an important experience. You'll also meet some very friendly people who will make you feel welcome despite yourself. Give it a shot.&lt;blockquote&gt;&lt;small&gt;&lt;b&gt;Shout-out:&lt;/b&gt; Thanks to the people who made me feel not like a stranger at Foo Camp, despite my acting like one. Selena Deckelmann, Cary Davis, Joe Hughes, Matt Cutts, Nat Torkington, Shel Kaphan, Toby Boudreaux, Andrew McLaughlin, Laurel Ruma, Emily Jacobi and many others.&lt;/small&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6289481948845484654?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6289481948845484654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6289481948845484654' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6289481948845484654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6289481948845484654'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/06/how-to-survive-foo-camp-introvert.html' title='How to Survive Foo Camp (Introvert Edition)'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-7807191173790408948</id><published>2010-06-21T17:50:00.000-07:00</published><updated>2010-06-21T17:52:34.256-07:00</updated><title type='text'>Nerds Redux</title><content type='html'>I had a chance to re-present my &lt;a href="http://2009.foss4g.org/"&gt;FOSS4G 2009&lt;/a&gt; keynote talk at the &lt;a href="http://rendez-vous-osgeo-qc.org/2010/english/"&gt;Rendezvous OSGeo a Quebec&lt;/a&gt; last week, and thanks to the good work of the &lt;a href="http://fosslc.org"&gt;FOSSLC&lt;/a&gt; team, there's now a pretty clean online video of it.&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://blip.tv/play/hdlkgeeNXQI%2Em4v" type="application/x-shockwave-flash" width="480" height="372" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-7807191173790408948?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/7807191173790408948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=7807191173790408948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7807191173790408948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7807191173790408948'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/06/nerds-redux.html' title='Nerds Redux'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4047747433344077911</id><published>2010-06-19T07:00:00.000-07:00</published><updated>2010-06-19T07:00:04.403-07:00</updated><title type='text'>PostGIS @ FOSS4G 2010</title><content type='html'>&lt;a href="http://2010.foss4g.org/"&gt;&lt;img src="http://wiki.osgeo.org/images/thumb/d/d6/Foss4g2010_logo.jpg/180px-Foss4g2010_logo.jpg" style="float:right;padding:5px;" border="0" /&gt;&lt;/a&gt;One of the things that tickled me about the presentations selected for FOSS4G 2010 was the number of talks in the list that specifically mention PostGIS:&lt;ul&gt;&lt;li&gt;Beyond PostGIS - New developments in Open Source Spatial Databases&lt;br /&gt;&lt;li&gt;Introducing PostGIS WKT Raster: Seamless raster/vector operations in a spatial database &lt;br /&gt;&lt;li&gt;Introduction of flood evacuation route search system?using QGIS,PostGIS,GRASS and PgRouting&lt;br /&gt;&lt;li&gt;Moving from Oracle/ArcGIS to PostGresql/PostGIS &lt;br /&gt;&lt;li&gt;PostGIS meets the third dimension &lt;br /&gt;&lt;li&gt;PostGIS WKT Raster. An Open Source alternative to Oracle GeoRaster&lt;br /&gt;&lt;li&gt;Running long and complex processes with PostGIS &lt;br /&gt;&lt;li&gt;The State of PostGIS&lt;br /&gt;&lt;li&gt;Tips for the PostGIS Power User&lt;/ul&gt;The last two are mine! And one is about not using PostGIS. But still, some interesting talks on the use and future of my favourite spatial database.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4047747433344077911?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4047747433344077911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4047747433344077911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4047747433344077911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4047747433344077911'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/06/postgis-foss4g-2010.html' title='PostGIS @ FOSS4G 2010'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-9022701061557077381</id><published>2010-06-18T10:48:00.000-07:00</published><updated>2010-06-18T11:03:20.620-07:00</updated><title type='text'>PgSQL on EC2</title><content type='html'>The theory behind putting a PostgreSQL (and PostGIS) instance on an Amazon EC2 instance with an Elastic Block Store (EBS) file system underneath is pretty straightforward, even for &lt;a href="http://developmentseed.org/blog/2009/dec/14/resizing-openstreetmap-planet-ebs-amazons-cloud"&gt;big databases&lt;/a&gt;. But when you want those databases to show the kind of properties we have come to expect from our systems, like durability, throughput, and reliability, things get much harder. &lt;br /&gt;&lt;br /&gt;This &lt;a href="http://archives.postgresql.org/pgsql-general/2010-04/msg00992.php"&gt;thread on pgsql-general&lt;/a&gt; was very illuminating to me. Among the tidbits:&lt;blockquote&gt; Let's be clear here, physical I/O is at times *terrible*.  :)&lt;/blockquote&gt;&lt;blockquote&gt;There's no way we could run this database on a single EBS volume.&lt;/blockquote&gt;&lt;blockquote&gt;We had to fail over to one of our spares twice in the last 1.5 years. Not fun.  Both times were due to instance failure.&lt;/blockquote&gt;Basically the assumptions of AWS architecture (virtual instances will be less reliable than real world computers, but that doesn't matter because getting a new one is really easy) don't map well with the requirements of running a classic production database.&lt;br /&gt;&lt;br /&gt;There are probably some engineering solutions around for this (&lt;a href="http://www.gluster.org/"&gt;GlusterFS&lt;/a&gt;, for example, but the core PgSQL would need some serious work and end up looking a lot more like &lt;a href="http://www.oracle.com/technology/products/database/clustering/index.html"&gt;OracleRAC&lt;/a&gt; than the currently single-machine set-up.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-9022701061557077381?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/9022701061557077381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=9022701061557077381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9022701061557077381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9022701061557077381'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/06/pgsql-on-ec2.html' title='PgSQL on EC2'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-569690759035078645</id><published>2010-06-08T05:23:00.000-07:00</published><updated>2010-06-08T05:35:16.208-07:00</updated><title type='text'>More Stories from the Future of Computing</title><content type='html'>From the &lt;a href="http://www.apple.com/quicktime/qtv/wwdc10/index.html"&gt;Jobs keynote&lt;/a&gt; of yesterday, a slide with a quote from Theo Gray of Wolfram, regarding the popular "Elements" iPad application:&lt;blockquote&gt;I earned more on sales of The Elements for iPad in the first day than from the past 5 years of Google ads on periodictable.com.&lt;/blockquote&gt;Quoth Jobs, "That's what I like to hear from you guys." Audience whoops.&lt;br /&gt;&lt;br /&gt;Right now the walled garden is kicking the jungle's ass, but for how long? It's incredibly interesting, that for the moment the old school revenue model of application sales is actually besting the new school free-with-strings (ads) model that we were told was the Future. Perhaps once HTML5 application quality gets up to the level of fit and finish that the current crop of native apps is providing we will flip back again.&lt;br /&gt;&lt;br /&gt;I think, for example, of a stock market application. Would people pay a buck for a really excellent application that "just works" in a clean and uncluttered way for displaying current information, research, blah blah blah, instead of just going to Yahoo! Finance? The information is available for free (just like the periodic table!) but a really excellent encapsulation of that information might be compelling enough to pay for. Walled garden starts to fall apart where it interfaces with the jungle... once the application has to link out to things like company reports, and other non-structure pieces in the raw internet, it re-gains the clunkiness of the old browser experience. So why not start with the browser?&lt;br /&gt;&lt;br /&gt;For geo, I think that sites like GeoCommons, which have applied a baseline level of structure to a wide swath of data, are fertile grounds for the "app treatment". An application that provides superior interactive access to their data archives would be an alternative monetization path for leveraging their growing holdings of structured GIS data.&lt;br /&gt;&lt;br /&gt;Interesting times!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-569690759035078645?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/569690759035078645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=569690759035078645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/569690759035078645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/569690759035078645'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/06/more-stories-from-future-of-computing.html' title='More Stories from the Future of Computing'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2386682083197092374</id><published>2010-06-02T06:02:00.000-07:00</published><updated>2010-06-02T06:04:51.826-07:00</updated><title type='text'>Finding Corrupt PostgreSQL Data Files</title><content type='html'>While PostgreSQL itself will never create corrupt data files, that doesn't stop other processes or hardware failures for corrupting the files underneath the database, which can cause database crashes. Josh Williams of End Point provides a &lt;a href="http://blog.endpoint.com/2010/06/tracking-down-database-corruption-with.html"&gt;super rundown&lt;/a&gt; of how to track and repair a file corruption.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2386682083197092374?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2386682083197092374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2386682083197092374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2386682083197092374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2386682083197092374'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/06/finding-corrupt-postgresql-data-files.html' title='Finding Corrupt PostgreSQL Data Files'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1471920764783103795</id><published>2010-05-17T20:36:00.000-07:00</published><updated>2010-05-17T20:53:42.790-07:00</updated><title type='text'>Who's Your Dealer?</title><content type='html'>&lt;img src="http://www.chicagonow.com/blogs/doctors-next-door/marijuana-leaf.jpg" style="float:right; padding:4px;width:200px;" /&gt;The &lt;a href="http://mapbutcher.com"&gt;mapbutcher&lt;/a&gt; thinks it's &lt;a href="http://mapbutcher.com/blog/?p=582"&gt;OK to get hooked on proprietary software&lt;/a&gt;:&lt;blockquote&gt;People are interested in the ‘express’ editions because on the surface of it the marketing works on them, they’re familiar with the brand and are attracted by the ‘free’ carrot dangling from the end of the stick. Open Source software starts from that position – it’s already free so open source projects need another carrot to get us hooked.&lt;/blockquote&gt;To which I can only say "Simon! Look at yourself in the mirror, man! Do you want to end up whoring yourself down on Dalgety Street to pay for your ESRI habit?"&lt;br /&gt;&lt;br /&gt;OK, metaphor is tricky and fun, because there's so many ways to approach a metaphor. And for this one, it's easy to get distracted by the "drug" side, but the point of &lt;a href="http://blog.cleverelephant.ca/2010/05/free-like.html"&gt;my metaphor&lt;/a&gt; is not that addictive drugs put you in a subordinate relationship to &lt;b&gt;the drug&lt;/b&gt; (though some do) but that they put you in a subordinate relationship to &lt;b&gt;the dealer&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The reason we can all survive and function in society despite our &lt;b&gt;crippling addiction to oxygen&lt;/b&gt; is because oxygen is free and plentiful.  &lt;a href="http://www.youtube.com/watch?v=oLNW9w1odK4"&gt;The pusherman&lt;/a&gt; isn't trying to hook new customers because he believes that drugs are wonderful, he's doing it because he &lt;b&gt;wants their money&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;Software is "addictive" to organizations. Once you choose a piece of software and implement it, you're going to be "addicted". It's going to be hard to change. There will be withdrawal symptoms. Given that fact, what kind of software do you want to use? Software that is as free as the air you breath? Or software that is only available on terms dictated by someone else?&lt;br /&gt;&lt;br /&gt;Your choice. Your future. Your life.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1471920764783103795?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1471920764783103795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1471920764783103795' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1471920764783103795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1471920764783103795'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/05/whos-your-dealer.html' title='Who&apos;s Your Dealer?'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1243204894037508816</id><published>2010-05-17T09:10:00.000-07:00</published><updated>2010-05-17T10:14:02.914-07:00</updated><title type='text'>Free like...</title><content type='html'>&lt;img src="http://farm5.static.flickr.com/4057/4616057784_87e39ef61a_m.jpg" style="float:right;" /&gt;A favorite &lt;i&gt;bon mot&lt;/i&gt; of open source critics is that open source software is "&lt;B&gt;free like a free puppy&lt;/b&gt;". Tee hee! Open source advocates should remember to keep the rejoinder handy, that proprietary software is "&lt;B&gt;free like a free hit of crack&lt;/b&gt;".  Oracle "Express", SQL Server "Express", ESRI educational copies, yes I am looking at you.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1243204894037508816?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1243204894037508816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1243204894037508816' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1243204894037508816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1243204894037508816'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/05/free-like.html' title='Free like...'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4057/4616057784_87e39ef61a_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2270774114983197710</id><published>2010-05-13T18:36:00.000-07:00</published><updated>2010-05-13T18:56:02.819-07:00</updated><title type='text'>NerdBA</title><content type='html'>&lt;img src="http://quizzical.altervista.org/_altervista_ht/2/HE%20GOT%20GAME.jpg" style="padding-left:10px; float:right; height: 250px;" /&gt;I was blessed (or cursed) to go through my undergraduate years from 1989 to 1993, and at that time, I'm sad to say, there wasn't a lot of nerd chic.  I did my degree in Mathematics.  The computer science student on my dorm floor ended up gainfully employed programming mainframes at Safeway. It was not, shall we say, a glamourous time for young nerds. On the other hand, the pressure wasn't exactly on.&lt;br /&gt;&lt;br /&gt;What do young nerds today make of the examples before them, the Brins and Pages and Zuckerbergs? Is there a sense of performance anxiety? Does the &lt;a href="http://www.paulgraham.com/articles.html"&gt;start-up zeitgeist&lt;/a&gt; weigh on them? &lt;br /&gt;&lt;br /&gt;Reading articles about &lt;a href="http://www.businessinsider.com/how-facebook-was-founded-2010-3"&gt;how Mark Zuckerberg screwed his college employers&lt;/a&gt;, I am torn. On the one hand, is the satisfaction that the guy who did the actual work and had the particular, detailed vision of the social network got the reward, not his &lt;a href="http://static.businessinsider.com/image/4b9049e67f8b9aed658f0000-384-288/connectu-founders.jpg"&gt;moneyed waspy employers&lt;/a&gt;.  On the other hand, he clearly &lt;a href="http://www.businessinsider.com/how-facebook-was-founded-2010-3#im-going-to-fuck-them-4"&gt;screwed them in a very premeditated fashion&lt;/a&gt;.  What led to this kind of anti-social behavior? The lure of the Big Score? With Brin and Page in the back of your mind, maybe becoming a &lt;a href="http://www.forbes.com/lists/2008/10/billionaires08_Mark-Zuckerberg_I9UB.html"&gt;20-something billionaire&lt;/a&gt; doesn't seem so far fetched? Maybe it's worth violating some social norms for?&lt;br /&gt;&lt;br /&gt;Anyhow, now Zuckerberg is part of the pantheon. And it makes me wonder what the psychology is, today, in the nerdly dorm rooms? Is it still OK to go work for Safeway? Or is everyone secretly hoping they can spend a couple years drinking coke, working in the garage, and making it to the NerdBA?&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2270774114983197710?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2270774114983197710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2270774114983197710' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2270774114983197710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2270774114983197710'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/05/nerdba.html' title='NerdBA'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4244699646741069511</id><published>2010-05-05T09:46:00.001-07:00</published><updated>2010-05-05T09:55:26.079-07:00</updated><title type='text'>The End of the End of General Purpose Computing</title><content type='html'>&lt;img src="http://www.mypersonalgps.com/Icons/Iphone%20Icon.jpg" style="float:right;width:80px; padding:5px;"/&gt;One of the memes that got slung around a log during the launch of the iPad and associated apologetics for the closed nature of iPad (and iPhone) software development was that we were at the "end of general purpose computing", that the closed and controlled environment was a good thing, and in fact &lt;b&gt;required&lt;/b&gt; in order to provide the seamless, user friendly experience necessary to bring computing, finally, to the unwashed masses.&lt;br /&gt;&lt;br /&gt;In this meme, the limitations of the new platform&amp;mdash;no multi-tasking, applications as unitary bundles that don't share files, the lack of a (user visible) hierarchical file system&amp;mdash;were all &lt;b&gt;features&lt;/b&gt;, not drawbacks, they were in fact the core benefits that make computing understandable for grandma.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.macrumors.com/2010/05/05/more-new-iphone-os-4-features-file-sharing-app-closing/"&gt;How quickly the worm turns&lt;/a&gt;. iPhone OS 4 now introduces multi-tasking, file sharing between applications, and all the associated user interface scruft that goes along with managing those concepts.  Also, &lt;b&gt;folders&lt;/b&gt; for holding the many application icons in your now-totally-crowded phone screens. And on and on. &lt;br /&gt;&lt;br /&gt;So, now that bath water (the blessed "simple enough for grandma" experience) is heading over the balcony edge, can we have our baby back (open application development)? &lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4244699646741069511?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4244699646741069511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4244699646741069511' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4244699646741069511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4244699646741069511'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/05/end-of-end-of-general-purpose-computing.html' title='The End of the End of General Purpose Computing'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5165663830387386915</id><published>2010-04-30T18:57:00.000-07:00</published><updated>2010-04-30T19:00:32.914-07:00</updated><title type='text'>You know you've arrived...</title><content type='html'>&lt;a href="http://2010.foss4g.org/"&gt;&lt;img src="http://wiki.osgeo.org/images/thumb/d/d6/Foss4g2010_logo.jpg/180px-Foss4g2010_logo.jpg" align="right"/&gt;&lt;/a&gt;...when people start discussing the best way to replace you.&lt;br /&gt;&lt;br /&gt;Seen amongst the abstracts in the &lt;a href="http://2010.foss4g.org/review"&gt;FOSS4G Community Program Review&lt;/a&gt;: "Beyond PostGIS - New developments in Open Source Spatial Databases" and "JASPA, an alternative to PostGIS". &lt;br /&gt;&lt;br /&gt;Is that a bright shining light? I'm floating above my body...&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5165663830387386915?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5165663830387386915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5165663830387386915' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5165663830387386915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5165663830387386915'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/04/you-know-youve-arrived.html' title='You know you&apos;ve arrived...'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1882967553911957932</id><published>2010-04-30T06:10:00.000-07:00</published><updated>2010-04-30T06:15:01.086-07:00</updated><title type='text'>FOSS4G Community Program Review</title><content type='html'>&lt;a href="http://2010.foss4g.org/"&gt;&lt;img src="http://wiki.osgeo.org/images/thumb/d/d6/Foss4g2010_logo.jpg/180px-Foss4g2010_logo.jpg" align="right"/&gt;&lt;/a&gt;It's that time of year again!  The &lt;a href="http://2010.foss4g.org/review/"&gt;Community Program Review&lt;/a&gt; for &lt;a href="http://2010.foss4g.org/"&gt;FOSS4G&lt;/a&gt; has begun!&lt;br /&gt;&lt;br /&gt;If you're going to FOSS4G, or seriously thinking about going, the review is a way to ensure that the program includes topics you are interested in. You scroll through a list of all the abstracts the conference has received, and select the ones that are of interest to you. The conference committee tabulates all the results and uses that data to help build the program and to slot talks into rooms of appropriate size.&lt;br /&gt;&lt;br /&gt;The number of abstracts is a good deal larger than the number of slots this year, so taking the time to do the review is a good idea if you're planning to attend this year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1882967553911957932?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1882967553911957932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1882967553911957932' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1882967553911957932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1882967553911957932'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/04/foss4g-community-program-review.html' title='FOSS4G Community Program Review'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4614297955773861368</id><published>2010-04-21T08:41:00.000-07:00</published><updated>2010-04-22T10:04:12.700-07:00</updated><title type='text'>Lazyweb: SDE requirements for PostGIS</title><content type='html'>Oh, lazyweb, I beseach thee!&lt;br /&gt;&lt;br /&gt;Can you tell me, for each version of ArcSDE, what version(s) of PostGIS is/are supported? I'm at the &lt;a href="http://www.waurisa.org/conferences/2010_Conference_Index.html"&gt;Washington GIS&lt;/a&gt; conference, and folks are using SDE on PostGIS, and some of them are using old versions of PostGIS, so I need to know how far back we have to apply patches in order to fully support users who have deployed SDE on PostGIS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; The lazyweb responds, with &lt;a href="http://resources.arcgis.com/content/arcsde-postgresql-database-requirements"&gt;ArcSDE 10 requirements&lt;/a&gt;, &lt;a href="http://wikis.esri.com/wiki/display/ag93bsr/ArcSDE+PostgreSQL+Database+Requirements"&gt;ArcSDE 9.3.x requirements&lt;/a&gt; and recap: PostGIS 1.4.0 for ArcSDE 10, PostGIS 1.3.2 for ArcSDE 9.3/9.3.1&lt;br /&gt;&lt;br /&gt;Also, from Cort Daniel of Pierce County I hear that minor releases as late as PostGIS 1.3.7 and PostgreSQL 8.3.5 work (unofficially) for ArcSDE 9.3.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update2:&lt;/b&gt; Cort also said that while PostgreSQL 8.3.5 worked with ArcSDE 9.3, 8.3.7 did not (date fields stopped working right), which is really really odd. Not sure if anyone else could confirm that.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4614297955773861368?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4614297955773861368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4614297955773861368' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4614297955773861368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4614297955773861368'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/04/lazyweb-sde-requirements-for-postgis.html' title='Lazyweb: SDE requirements for PostGIS'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8134685556854827078</id><published>2010-04-19T13:42:00.000-07:00</published><updated>2010-04-19T23:07:14.410-07:00</updated><title type='text'>Surveyor's Sermon</title><content type='html'>Last month I had an opportunity to give a 5-minute "&lt;a href="http://ignite.oreilly.com/"&gt;Ignite&lt;/a&gt;" talk at &lt;a href="http://en.oreilly.com/where2010"&gt;Where 2.0&lt;/a&gt; in San Jose. I chose my topic because I fear one of the things missing in the technologist enthusiasm for geolocation, particularly in the population of technically astute but non-geo people, is a respect for how locations are actually derived, and knowledge of the provenance of the data that undergirds our new mapping tools.&lt;br /&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/IX8iQN04tOo&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/IX8iQN04tOo&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8134685556854827078?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8134685556854827078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8134685556854827078' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8134685556854827078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8134685556854827078'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/04/surveyors-sermon.html' title='Surveyor&apos;s Sermon'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1111966397951040111</id><published>2010-04-16T16:44:00.000-07:00</published><updated>2010-04-16T16:51:14.510-07:00</updated><title type='text'>FOSS4G 2010 Going to be Big</title><content type='html'>&lt;a href="http://2010.foss4g.org/"&gt;&lt;img src="http://www.postgresonline.com/images/foss4g2010_small.png" style="float:right; padding:3px;border:0;"/&gt;&lt;/a&gt;The presentation abstract deadline has passed for &lt;a href="http://2010.foss4g.org/"&gt;FOSS4G 2010&lt;/a&gt; and there have been &lt;a href="http://lists.osgeo.org/pipermail/foss4g2010/2010-April/000394.html"&gt;354&lt;/a&gt; abstracts submitted! I'm not sure the exact number of session slots in the planned program, but for comparison 2007 had 120 slots and subsequent events have been similar -- that's about how many 30 minute talks you can fit into two days in a five-track format. In 2007, the biggest FOSS4G so far, we had around 240 submissions for our 120 slots. So, with three submissions for every slot, 2010 is looking like it is going to be gangbusters! Everyone wants to go to Barcelona, I guess they heard about the &lt;i&gt;escudella i carn d’olla&lt;/i&gt;.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1111966397951040111?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1111966397951040111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1111966397951040111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1111966397951040111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1111966397951040111'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/04/foss4g-2010-going-to-be-big.html' title='FOSS4G 2010 Going to be Big'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1946518912696024087</id><published>2010-04-06T21:29:00.000-07:00</published><updated>2010-04-07T08:21:39.934-07:00</updated><title type='text'>On the road to Damascus... GPL to BSD</title><content type='html'>In response to &lt;a href="http://twitter.com/pwramsey/status/11445182899"&gt;a Twitter comment&lt;/a&gt; I made about my change in attitude towards the BSD and GPL open source licenses, Martin Daly &lt;a href="http://twitter.com/mpdaly/status/11474844507"&gt;asks&lt;/a&gt;:&lt;blockquote&gt;Blog post on the &lt;a href="http://en.wikipedia.org/wiki/Conversion_of_Paul"&gt;Damascene&lt;/a&gt; (or otherwise) conversion from GPL-ish to BSD-ish please. In your own time.&lt;/blockquote&gt;The reason I was even mentioning the license issue is because I was watching &lt;a href="http://en.oreilly.com/where2010/public/schedule/detail/12725"&gt;a panel discussion at Where 2.0&lt;/a&gt;, in which Steve Coast, in defending the &lt;a href="http://wiki.openstreetmap.org/wiki/OpenStreetMap_License"&gt;GPL-ish license used for OpenStreetMap&lt;/a&gt;, said (paraphrase) that the rationale was keeping a third party from taking the open data, closing it, and working from there. And that rationale pretty closely mirrors &lt;a href="http://postgis.org/pipermail/postgis-users/2001-August/000203.html"&gt;how we were thinking&lt;/a&gt; when choosing the &lt;a href="http://www.opensource.org/licenses/gpl-2.0.php"&gt;GPL&lt;/a&gt; license for PostGIS, back in 2001. &lt;br /&gt;&lt;br /&gt;I have experienced no spectral presence or flashing lights.&lt;br /&gt;&lt;br /&gt;However, over the years, I have spent far too much time talking to various corporate folks about how the PostGIS &lt;a href="http://www.opensource.org/licenses/gpl-2.0.php"&gt;GPL&lt;/a&gt; license wouldn't affect their plans to use PostGIS as a database component in their systems. For everyone who came and asked, I am sure many didn't. But in general the license was an impediment to some organizations engaging with the project. So there was a downside to the GPL. And was there an upside? Did the license protect us from privatized forks?&lt;br /&gt;&lt;br /&gt;Well, yes, insofar is as it legally prevented them from happening. But it is worth questioning the implicit assumption that such forks are actually harmful to the project.&lt;br /&gt;&lt;br /&gt;And here my experience watching the MapServer community (working with the &lt;strike&gt;BSD&lt;/strike&gt; &lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT&lt;/a&gt; license) was useful. Because over those same years, I watched the &lt;a href="http://mapserver.org/"&gt;MapServer&lt;/a&gt; project chug healthily along, even as some third parties did in fact take the code and work on &lt;a href="http://www.mapdotnet.com/"&gt;closed forks&lt;/a&gt; from time to time. &lt;br /&gt;&lt;br /&gt;The lesson I have taken from my observation is that the strength of open source projects resides not in the licenses or the code, but in the communities arrayed about them. Copying the code of MapServer and doing your own thing with it does not stop MapServer developers from working, and in the long run you'll probably be better off working within the community than outside it, to gain from the efforts of others.  Trying to maintain a private parallel branch and patch in the changes from the open development will quickly become more effort than it is worth. At the same time, because the BSD license is so permissive, there are no legal impediments for companies to engage with the community.&lt;br /&gt;&lt;br /&gt;Look at any healthy open source project and ask yourself: what is more valuable, the code or the community? You could take all the code &lt;b&gt;away&lt;/b&gt; from a healthy project, and it would start right up again from scratch and probably do a better job the second time. The value is in the human relationships and the aggregation of cooperating talent.  &lt;br /&gt;&lt;br /&gt;The GPL tends to keep corporate actors out of the community (for good reasons or bad, that's a separate discussion, but it does). That slows down the development of the project by reducing size of the development pool. Which, counterintuitively, makes forking or ignoring the open project more attractive. Because a slow moving project is easy to beat. A fast moving project is risky to fork, because it is likely that your (relatively understaffed) fork will be left behind by the open project.&lt;br /&gt;&lt;br /&gt;So, back to what originally made me delve into license wankery, the question of OpenStreetMap license: the value of the OSM community and philosophy and infrastructure is way higher than the data at this point. And bringing corporate actors into the OSM community would only increase the relative advantage of the open project over any equivalent closed effort.&lt;br /&gt;&lt;br /&gt;But changing licenses is a brutally hard thing to do, and it gets harder the longer a license is in place. PostGIS will never change licenses, for example. There are too many developers who contributed in the past under the GPL, and changing license would require the assent of all of them. &lt;br /&gt;&lt;br /&gt;But if I ever start a new project, it will definitely be under the BSD.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1946518912696024087?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1946518912696024087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1946518912696024087' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1946518912696024087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1946518912696024087'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/04/on-road-to-damascus-gpl-to-bsd.html' title='On the road to Damascus... GPL to BSD'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1201304758191647008</id><published>2010-03-23T16:15:00.000-07:00</published><updated>2010-03-23T16:30:29.009-07:00</updated><title type='text'>FOSS4G 2011 Decision Process</title><content type='html'>&lt;img src="http://2010.foss4g.org/img/OSGeo_logo.png" style="width:200px; float:right;" /&gt; The &lt;a href="http://www.osgeo.org/news/2010/foss4g-rfp"&gt;2011 FOSS4G siting process&lt;/a&gt; has begun. After the 2010 process, where there were too many good proposals and not enough slots, we decided to do a couple things to lower the effort level required by bidders in aggregate.&lt;br /&gt;&lt;br /&gt;First, we wanted to be more definitive about our regional siting plan, which is to rotate between Europe (2010), North America (2011) and elsewhere (with elsewhere being Asia (2012) in the current rotation plan). For 2011 the regional arrow points to &lt;b&gt;North America&lt;/b&gt;, since &lt;a href="http://2010.foss4g.org/"&gt;2010&lt;/a&gt; is in Europe.&lt;br /&gt;&lt;br /&gt;Second, we wanted to lower the bar to submitting a proposal. In 2010 we got four full proposals, and could choose only one. So 75% of the bidders did a large amount of preliminary research and spade-work for no purpose. For the 2011 process, we will start with a "letter of intent" phase, a short document outlining expressions of interest. Hopefully having all the interested parties publicly declared will promote locations coming together and forming joint bids.&lt;br /&gt;&lt;br /&gt; The OSGeo conference committee will vote on the letters and only the top two will be asked to prepare full bid documents. That would still leave one potentially disappointed party at the end of the process, but is a big improvement over leaving three, as happened in the 2008 and 2010 processes. And hopefully the letters phase will encourage groups to consolidate bids so we won't have to even run the final round.&lt;br /&gt;&lt;br /&gt;The winning site will still have to submit a proposal and budget, so the Board and Conference Committee have confidence that the local team has thought things through, but the kind of research necessary to prepare a full proposal is a necessary precursor to putting on a conference, so the effort will be put to good purpose.&lt;br /&gt;&lt;br /&gt;I'm looking forward to seeing the letters!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1201304758191647008?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1201304758191647008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1201304758191647008' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1201304758191647008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1201304758191647008'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/03/foss4g-2011-decision-process.html' title='FOSS4G 2011 Decision Process'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3061670315433943057</id><published>2010-03-22T09:47:00.000-07:00</published><updated>2010-03-22T21:00:19.476-07:00</updated><title type='text'>How to get Your bug fixed</title><content type='html'>Mike Leahy is providing a &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026215.html"&gt;textbook demonstration of bug-dogging&lt;/a&gt; on the PostGIS users list this week, and anyone interested in learning how to interact with a development community to get something done would do well to study it.&lt;br /&gt;&lt;br /&gt;Some key points:&lt;br /&gt;&lt;br /&gt;He does as much of the work in diagnosing the problem as possible, including combing through Google for references, &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026222.html"&gt;cutting down the test data&lt;/a&gt; as small as possible, trying to find smaller cases that exercise the issue.&lt;br /&gt;&lt;br /&gt;He &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026222.html"&gt;responds&lt;/a&gt; &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026235.html"&gt;very quickly&lt;/a&gt; (you'll have to read the timestamps) to questions and &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026241.html"&gt;suggestions&lt;/a&gt; for gathering more information. Since the problem appears initially to manifest only on his machine, any delay on his part risks disengaging the folks helping him.&lt;br /&gt;&lt;br /&gt;He prepares a sample database and query to allow the development team to easily replicate the situation on their machines. &lt;br /&gt;&lt;br /&gt;And he also gets lucky. The problem is replicable, and the discussion &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026243.html"&gt;catches the attention&lt;/a&gt; of Greg Stark, who recalls and digs up some changes Tom Lane made to PostgreSQL which in turn &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026244.html"&gt;leads me&lt;/a&gt; to find the one-argument-change that can &lt;a href="http://postgis.org/pipermail/postgis-users/2010-March/026245.html"&gt;remove the problem&lt;/a&gt;. Very lucky, really, it's unlikely I would have been able to debug it by brute force.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3061670315433943057?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3061670315433943057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3061670315433943057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3061670315433943057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3061670315433943057'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/03/how-to-get-your-bug-fixed.html' title='How to get Your bug fixed'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1357799190010993730</id><published>2010-03-19T15:15:00.000-07:00</published><updated>2010-03-19T17:04:17.670-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='rdbms'/><title type='text'>NoNoSQL</title><content type='html'>I'm really looking forward to seeing the "&lt;a href="http://en.wikipedia.org/wiki/NoSQL"&gt;NoSQL&lt;/a&gt;" buzzword head over the top of the &lt;a href="http://en.wikipedia.org/wiki/Hype_cycle"&gt;hype-cycle&lt;/a&gt; and start heading downwards, since I think it's really doing damage in what should be a fairly straightforward discussion of matching customer use cases to appropriate technology. &lt;br /&gt;&lt;br /&gt;&lt;img alt="NoNoSQL" src="http://media.tumblr.com/tumblr_kv4be8I1MB1qa94o2.png" style="float:right;padding:6px;"/&gt;Because the term is framed ("No!") in opposition to the almost the entire family of existing data persistence technology, anyone who comes to the discussion fresh assumes there's a replacement process going on, wherein NoSQL stands in opposition to SQL.&lt;br /&gt;&lt;br /&gt;That's a shame, because the term is only one letter away from a (slightly) less polarizing buzzword: NotSQL.  Even then, though, the core discussion would be lost, because the big difference isn't programmatic API versus 4GL. The big difference is use case matching, in particular the high-volume, high-availability use case which has emerged in the age of consumer web services. &lt;br /&gt;&lt;br /&gt;People with public-facing web applications face a potentially unconstrained read/write load (in their happiest dreams) and the techniques necessary to scale a traditional RDBMS to match that load proceed from the &lt;a href="http://en.wikipedia.org/wiki/Load_balancing_(computing)"&gt;straightforward&lt;/a&gt; at the low end to the &lt;a href="http://en.wikipedia.org/wiki/Shard_(database_architecture)"&gt;increasingly byzantine&lt;/a&gt; at the high end.&lt;br /&gt;&lt;br /&gt;The scaling story for traditional RDBMS technology just is not great: start by adding servers and extra technology to hook them together; get increasingly smart people to handle your increasingly complex infrastructure; finally, &lt;a href="http://en.wikipedia.org/wiki/Partition_(database)"&gt;start&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Shard_(database_architecture)"&gt;hacking&lt;/a&gt; at your data model to allow even further partitioning and duplication. &lt;br /&gt;&lt;br /&gt;The new breed of databases have a great scaling story: once you get set up, scaling requires plugging in new nodes and turning them on. That's it. No model changes, no extra replication and high availability technology.&lt;br /&gt;&lt;br /&gt;There's no free lunch though. In exchange for the high-throughput/high-availability you lose the expressiveness and power of SQL. Henceforth you will write your joins and summaries yourself, at the application level. Henceforth performing an ad hoc query may require you to build and populate a whole new "table" (the terminology is highly variable at this point) in your model.  And of course this technology is all pretty fresh meat, so just learning enough to get started can be a bit of a slog &amp;ndash; kids aren't exactly coming out of school with a course in this stuff under their belt.&lt;br /&gt;&lt;br /&gt;So, it's a whole new world, and if you are planning on serving an application where the numbers (hits, pages, requests, whatever) are heading into the 7-digits, it might be good idea to start with this technology (can you tell I can't stand to use the "NoSQL" term? It is just too awful, there really needs to be a non-pejorative term for this application category).&lt;br /&gt;&lt;br /&gt;Of course, there's nothing new under the sun. Getting the best performance for a specialized use case requires (a) modifying your data model and (b) using technology that can leverage your specialized data model. This is exactly what &lt;a href="http://en.wikipedia.org/wiki/Online_analytical_processing"&gt;OLAP&lt;/a&gt; databases have been doing for a generation to provide data analysis on multi-billion record historical databases (&lt;a href="http://en.wikipedia.org/wiki/Star_schema"&gt;special data model&lt;/a&gt;, &lt;a href="http://www.teradata.com/t/"&gt;special technology&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Database guru Michael Stonebraker wrote a nice article about the brave new world of databases, called "&lt;a href="http://www.cs.brown.edu/~ugur/fits_all.pdf"&gt;One Size Fits All: An Idea Whose Time has Come and Gone&lt;/a&gt;" in 2005, and the conclusion is that we are going to see increasing fragmentation of database technology based on use case. "NoSQL" (*shudder*) is just the latest iteration in this process.&lt;br /&gt;&lt;br /&gt;Meanwhile, I'll put my oar in for the general purpose database: it's easy to run OLAP queries on a general purpose database, you just can't do it once your table size gets over a billion; it's easy to run a public web site on a general purpose database, you just can't do it once your load gets over a million. On the other hand it's well nigh impossible to run even a small web site on an OLAP database and pretty darn hard to build even a small OLAP system on a NoSQL foundation. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.usingenglish.com/reference/idioms/horses+for+courses.html"&gt;Horses for courses&lt;/a&gt; folks, horses for courses.&lt;br /&gt;&lt;br /&gt;&lt;small&gt;For more of this kind of geekery, see the several articles linked off of "&lt;a href="http://www.oraclenerd.com/2010/03/case-for-bit-bucket.html"&gt;The Case for the Bit Bucket&lt;/a&gt;" at the &lt;a href="http://www.oraclenerd.com/"&gt;Oracle Nerd blog&lt;/a&gt;.&lt;/small&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1357799190010993730?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1357799190010993730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1357799190010993730' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1357799190010993730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1357799190010993730'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/03/nonosql.html' title='NoNoSQL'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2697785041481715132</id><published>2010-03-10T10:56:00.000-08:00</published><updated>2010-03-10T10:59:17.313-08:00</updated><title type='text'>Where 2.0 Drinking Game</title><content type='html'>It's that time of year again, and I'll be sitting in the audience with my flask (I hope you will too!) playing the Where 2.0 drinking game. Here's some of my phrases, what are yours?&lt;ul&gt;&lt;li&gt;... find a Starbucks...&lt;/li&gt;&lt;li&gt;... we're releasing an API ...&lt;/li&gt;&lt;li&gt;... friends list ...&lt;/li&gt;&lt;/ul&gt;Also, take a big slug if someone talks about working with geospatial data more complex than a lat/lon point!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2697785041481715132?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2697785041481715132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2697785041481715132' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2697785041481715132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2697785041481715132'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/03/where-20-drinking-game.html' title='Where 2.0 Drinking Game'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-982957366565511863</id><published>2010-03-05T08:42:00.000-08:00</published><updated>2010-03-05T09:03:20.124-08:00</updated><title type='text'>Send us Jeremy and Keyur!</title><content type='html'>ESRI (pretty new web page, by the way) has put their &lt;a href="http://www.esri.com/technology-topics/open-source/index.html"&gt;open source position&lt;/a&gt; on-line and also produced a short podcast with Victoria Kouyoumjian on the same topic.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.esri.com/news/podcasts/audio/speaker/staff_kouyoumjian.mp3"&gt;http://www.esri.com/news/podcasts/audio/speaker/staff_kouyoumjian.mp3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One thing that struck me in the podcast was when Victoria noted that ESRI has sponsored open source events in the past (most notably &lt;a href="http://2007.foss4g.org/"&gt;FOSS4G 2007&lt;/a&gt; directly, but also 2008 and 2009 to a lesser extent through &lt;a href="http://52north.org/"&gt;50&amp;deg;North&lt;/a&gt;). She says, &lt;blockquote&gt;These events allow us the opportunity to engage in conversations and dialogs with various technologists because we want to gain feedback about the needs of open source developers and users.  The objective of course is to channel this information back to development so we can reflect this in future products and business decisions in order to best support our customers.&lt;br /&gt;&lt;/blockquote&gt;So far ESRI attendance has been at the managerial level, and while I love those guys (hugs to Satish and Victoria!) some real sparks could fly and serious interoperability improvements be made if we started seeing the developers, the project leads and software designers, at the events. We can do better than "channeling" information back to development, let's immerse development in it!&lt;br /&gt;&lt;br /&gt;&lt;B&gt;Update:&lt;/b&gt; We promise to send them back. Really.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-982957366565511863?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/982957366565511863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=982957366565511863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/982957366565511863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/982957366565511863'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/03/send-us-jeremy-and-keyur.html' title='Send us Jeremy and Keyur!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3893762606281830656</id><published>2010-03-01T09:26:00.000-08:00</published><updated>2010-03-01T11:35:50.895-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgis'/><category scheme='http://www.blogger.com/atom/ns#' term='wkb'/><category scheme='http://www.blogger.com/atom/ns#' term='ogc'/><category scheme='http://www.blogger.com/atom/ns#' term='iso'/><title type='text'>Nothing, Nada, Zip, Bupkus</title><content type='html'>There is nothing new under the sun, and I have been wrestling this week with writing out ISO-standard well-known binary from PostGIS. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://images.fanpop.com/images/image_uploads/Empty-Set-Symbol-random-241186_191_160.jpg" style="float:right;"&gt;The most obvious difference is that the type numbers for encoding the presence of Z- and M-dimensions are not the ones described in the old &lt;a href="http://portal.opengeospatial.org/files/?artifact_id=909"&gt;OGC extension document&lt;/a&gt; [OGC members only, &lt;a href="http://postgis.refractions.net/pipermail/postgis-devel/2004-December/000695.html"&gt;cited by Martin Daly&lt;/a&gt; in 2004, and &lt;a href="http://svn.osgeo.org/postgis/trunk/doc/ZMSgeoms.txt"&gt;extended further&lt;/a&gt; for PostGIS by Sandro Santilli that year] for WKB. Instead of setting high-bits to indicate the presence of Z and M, as OGC did, the ISO spec simply adds 1000. &lt;br /&gt;&lt;br /&gt;So, the ISO geometry number for a PolygonZ is 3 (Polygon) + 1000 = 1003.&lt;br /&gt;&lt;br /&gt;The, old OGC geometry number for a PolygonZ is 3 (Polygon) | 0x80000000 = 2147483651. &lt;br /&gt;&lt;br /&gt;OGC seems more complex until you note that the function WKB_HASZ(num) can be written (num &amp; 0x80000000). While the ISO test is (num &gt;= 1000 &amp;&amp; num &lt; 2000). Setting flags for binary values (has-z, has-m, has-a-piece-of-pie) is nice. &lt;br /&gt;&lt;br /&gt;Anyhow, that change was well-known and expected. What I didn't expect was the amount of ambiguity surrounding the definition of an empty geometry in WKB.&lt;br /&gt;&lt;br /&gt;To review, the spatial SQL definition includes the concept of an "empty geometry", which is an empty set of a particular geometry type. The empty geometry has more information than a simple database NULL, which is a typeless emptiness. A 'POLYGON ZM EMPTY' has an implied dimensionality. It makes some sense that ST_Intersection() of two disjoint polygons would return a 'POLYGON EMPTY'.&lt;br /&gt;&lt;br /&gt;The ISO SQL/MM well-known text specification has clear directions for writing empty geometries of all types. In fact, I've just written two of them above: the type name plus the 'EMPTY' keyword.&lt;br /&gt;&lt;br /&gt;For well-known binary, ISO SQL/MM includes the following useless guidance:&lt;blockquote&gt;i) Case:&lt;br/&gt;i) If &amp;lt;point binary representation&amp;gt; immediately contains a &amp;lt;wkbpoint binary&amp;gt;, then &amp;lt;point binary representation&amp;gt; is the well-known binary representation for an ST_Point value that is produced by &amp;lt;wkbpoint binary&amp;gt;.&lt;br/&gt;ii) Otherwise, &amp;lt;point binary representation&amp;gt; produces an empty set of type ST_Point&lt;/blockquote&gt;Representing an empty point in WKB is hard because there's nowhere obvious to indicate the lack of ordinates. But the ISO specification makes no attempt to solve the problem, they instead provide explicit guidance that is impossible to implement. Basically, if you are reading a WKB POINT and there are doubles after the TYPE number, you have a POINT(x y). If not, you have a POINT EMPTY. All well and good, but how do you distinguish, in a collection of WKB geometries, between the presence of doubles in the byte stream and the presence of another geometry in the stream? You don't. &lt;br /&gt;&lt;br /&gt;The ISO guidance for empty Linestrings is even worse! &lt;blockquote&gt;q) Case:&lt;br/&gt;i) If &amp;lt;linestring binary representation&amp;gt; immediately contains &amp;lt;num&amp;gt;, then &amp;lt;linestring binary representation&amp;gt; is the well-known binary representation for an ST_LineString value. Let APA be an ST_Point ARRAY value with cardinality of &amp;lt;num&amp;gt; that contains the ST_Point values specified by the immediately contained &amp;lt;wkbpoint binary&amp;gt;s. &amp;lt;linestring binary representation&amp;gt; produces an ST_LineString value as the result of the value expression: NEW ST_LineString(APA).&lt;br/&gt;ii) Otherwise, &amp;lt;linestring binary representation&amp;gt; produces an empty set of type ST_LineString.&lt;/blockquote&gt;As with the POINT case, the WKB reader is supposed to magically distinguish between an element of the current geometry (the &amp;lt;num&amp;gt;) in the byte-stream and an element of the &lt;em&gt;next&lt;/em&gt; geometry in the byte-stream. And worse, the "clarifying" comment implicitly adds a &lt;b&gt;whole new kind of empty geometry&lt;/b&gt;! What if the &amp;lt;num&amp;gt; is present, but the value is zero!?! &lt;br /&gt;&lt;br /&gt;This is where the snake starts eating its tail. The way that implementations of OGC WKB have been encoding EMPTY geometries has been to provide the type number and an element count of zero.  Back when PostGIS was first getting WKB support, Dave Blasby &lt;a href="http://postgis.refractions.net/pipermail/postgis-users/2003-April/002346.html"&gt;wrestled with&lt;/a&gt; the fact that the specification did not describe how to encode EMPTY.  Mateusz Loskot recently &lt;a href="http://mateusz.loskot.net/2010/02/26/sqlgeometry-and-point-empty-in-wkb/"&gt;published some information&lt;/a&gt; showing the WKB EMPTY implementation that Microsoft used for SQLServer. Their implementation is one of the options Dave described five years ago &amp;ndash; there's only so many ways to solve this problem.&lt;br /&gt;&lt;br /&gt;If ISO didn't like the use of a zero-valued &amp;lt;num&amp;gt; count as a way of indicating EMPTY, they had another option available, which was to follow the original OGC WKB standard and use bitmask flags on their type numbers. There could have been a bitmask for Z, a bitmask for M, and a bitmask for EMPTY. There could even have been a bitmask for SRID, fixing up a huge drawback in WKB, namely that WKB does not include a slot for the SRID, which is an important element in the geometry model.&lt;blockquote&gt;Sidenote: As a result of WKB not having SRID support, it's not possible to round-trip a geometry through WKB without losing the SRID value. Try this standard SQL and see what happens: &lt;br/&gt;&lt;code&gt;SELECT ST_SRID( ST_GeomFromWKB( ST_AsBinary( ST_GeomFromText('POINT(0 0)', 4326 ) ) ) )&lt;/code&gt;&lt;br/&gt; Then try the bastardized &lt;a href="http://svn.osgeo.org/postgis/trunk/doc/ZMSgeoms.txt"&gt;PostGIS EWKB format&lt;/a&gt; instead: &lt;br/&gt;&lt;code&gt;SELECT ST_SRID( ST_GeomFromEWKB( ST_AsEWKB( ST_GeomFromText( 'POINT(0 0)', 4326 ) ) ) )&lt;/code&gt;&lt;/blockquote&gt;As it stands now, the specification is out of synch with the implementations on the ground, which is bad news for the relevance of the specification. I will be implementing EMPTY using the same semantics as SQLServer, which will make the kinds of EMPTY PostGIS can represent slightly richer, but remain backwards compatible to the old schemes.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3893762606281830656?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3893762606281830656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3893762606281830656' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3893762606281830656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3893762606281830656'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/03/nothing-nada-zip-bupkus.html' title='Nothing, Nada, Zip, Bupkus'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-646828291108739136</id><published>2010-02-23T13:36:00.000-08:00</published><updated>2010-03-01T09:16:46.683-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgeo'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><title type='text'>NYC Sprint: Day 4</title><content type='html'>End day was, as last year, a quiet one. Everyone worked on cleaning up their last bits of work before heading home around mid-afternoon. Unfortunately, most left before I had a chance to ask what they finished up!&lt;br /&gt;&lt;br /&gt;(For my part, I finished some minimal regression tests on the WKT emitter, changed the emitter to use a stringbuffer for output, and upgraded the stringbuffer to be smarter about performance. Jeff Adams has been working on making our unit test program a little more flexible for developers (easier to add tests, and able to optionally run one test at a time)).&lt;br /&gt;&lt;br /&gt;One more time, thanks to the sponsors, we got a great deal done and MapServer, Geoserver, PostGIS and the rest of the tribe are going to be stronger next year thanks to this event.&lt;br /&gt;&lt;br /&gt;Special thanks also to &lt;b&gt;Temim Fruchter&lt;/b&gt; of OpenPlans who was invaluable in helping me make arrangements in New York for hotels and food and all the things that made the event enjoyable and comfortable. Thanks to OpenPlans for hosting us in their lovely penthouse event room!&lt;br /&gt;&lt;br /&gt;&lt;div style="vertical-align:center; text-align:center;" &gt;&lt;a href="http://www.azavea.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4023/4398161023_8b37ecdd58_o.png" alt="Azavea" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://www.lizardtech.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4037/4363909195_a73ab7d789_o.jpg" alt="LizardTech" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.coordinatesolutions.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4003/4364650774_9561cfe97a_o.jpg" alt="Coordinate Solutions" border="0" /&gt;&lt;/a&gt; &lt;br/&gt;&lt;a href="http://opengeo.org/"&gt;&lt;img src="http://farm5.static.flickr.com/4072/4364650828_9b0562e902_o.jpg" alt="OpenGeo" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.qpublic.net/"&gt;&lt;img src="http://farm5.static.flickr.com/4012/4363909295_d1e4391317_o.jpg" alt="qPublic.net" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.fargeo.com/"&gt;&lt;img src="http://farm3.static.flickr.com/2690/4364650934_2305ed4739_o.jpg" alt="Farallon" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-646828291108739136?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/646828291108739136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=646828291108739136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/646828291108739136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/646828291108739136'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/nyc-sprint-day-4.html' title='NYC Sprint: Day 4'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1991992435132133204</id><published>2010-02-22T14:00:00.000-08:00</published><updated>2010-03-01T19:14:15.095-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgeo'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><title type='text'>NYC Sprint: Day 3</title><content type='html'>Third day, best day. There are four MapServer developers now working hard on implementing the &lt;a href="http://trac.osgeo.org/mapserver/wiki/RenderingPluginStatus"&gt;rendering plugin&lt;/a&gt; changes. Thomas Bonfort is doing the core work, Steve Lime is re-working the old GD renderer, Dan Morissette is creating support for hatched styles, and Assefa is doing KML output.&lt;br /&gt;&lt;br /&gt;In Geoserver land, Andrea Aime added support for &lt;a href="http://old.nabble.com/Variable-substitution-in-SLD-ts27689445.html"&gt;variable substitution in SLD&lt;/a&gt;, which means that URL parameters can now be passed into SLD styling rules, to create dynamic styling effects. Tim Schaub and Justin Deoliveira also demonstrated an application that warms the cockles of my heart:  using their new GeoScript extension they made a web-based application that takes in SQL and spits out maps. So now I can type PostGIS queries into a web page and see the results overlaid on a map. Crunchy!&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align:center;"&gt; &lt;a href="http://www.flickr.com/photos/92995391@N00/4380402910/" title="Geoserver / OpenLayers Crew by pwramsey3, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2804/4380402910_b0f07b624b_m.jpg" width="180" height="240" alt="Geoserver / OpenLayers Crew" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.flickr.com/photos/92995391@N00/4380402882/" title="Steve Lime Contemplates by pwramsey3, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4040/4380402882_98d77fef52_m.jpg" width="180" height="240" alt="Steve Lime Contemplates" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Howard Butler has contributed some work on the auto-projection support in MapServer and is now working on LibLAS Oracle support. He also tracked down an excellent pastrami sandwich. So I am told.&lt;br /&gt;&lt;br /&gt;In PostGIS world, Jeff Adams finished his lat/lon formatter and logged his first commit: an impressive complete collection of unit tests, documentation and a working function (ST_AsLatLonText) that can turn POINT(-120.5 12.25) into 12°15'0"N 120°30'0"W. Oliver continues to fix up the text output functions. And I completed my first cut of the WKT output. Curve support really adds a lot of overhead to these things! There are lots of variants and curves have more and sillier formatting rules than linear features. David Zwarg has continued beavering through tickets in the WKTRaster subsystem.&lt;br /&gt;&lt;br /&gt;Thanks again to our sponsors, tonight we are heading out to dinner at a Malaysian restaurant in Chinatown.&lt;br /&gt;&lt;br /&gt;&lt;div style="vertical-align:center; text-align:center;" &gt;&lt;a href="http://www.azavea.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4023/4398161023_8b37ecdd58_o.png" alt="Azavea" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://www.lizardtech.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4037/4363909195_a73ab7d789_o.jpg" alt="LizardTech" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.coordinatesolutions.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4003/4364650774_9561cfe97a_o.jpg" alt="Coordinate Solutions" border="0" /&gt;&lt;/a&gt; &lt;br/&gt;&lt;a href="http://opengeo.org/"&gt;&lt;img src="http://farm5.static.flickr.com/4072/4364650828_9b0562e902_o.jpg" alt="OpenGeo" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.qpublic.net/"&gt;&lt;img src="http://farm5.static.flickr.com/4012/4363909295_d1e4391317_o.jpg" alt="qPublic.net" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.fargeo.com/"&gt;&lt;img src="http://farm3.static.flickr.com/2690/4364650934_2305ed4739_o.jpg" alt="Farallon" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1991992435132133204?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1991992435132133204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1991992435132133204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1991992435132133204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1991992435132133204'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/nyc-sprint-day-3.html' title='NYC Sprint: Day 3'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2804/4380402910_b0f07b624b_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-9033916703249082140</id><published>2010-02-21T11:42:00.000-08:00</published><updated>2010-03-01T09:16:28.384-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgeo'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><title type='text'>NYC Sprint: Day 2</title><content type='html'>Today the Geoserver, MapServer and OpenLayers teams got together and really showed off the "&lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010_Agenda"&gt;making things work together better&lt;/a&gt;" theme. Starting from Andrea Aime's new "WMS rotation" feature, Daniel Morissette implemented the same feature with the same semantics in MapServer, while Andreas Hocevar implemented client support for the feature into OpenLayers. During testing, a small bug showed up in the Geoserver implementation, which Andrea fixed. &lt;br /&gt;&lt;br /&gt;The final result is shown in this screenshot: layers from Geoserver and MapServer viewed and rotated together within OpenLayers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/4376132629/" title="screenshot008tm by pwramsey3, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2794/4376132629_d5ea4065b3.jpg" width="500" height="233" alt="screenshot008tm" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The MapServer team is now really digging into a couple major goals: &lt;a href="http://mapserver.org/development/rfc/ms-rfc-37.html"&gt;reading projection information automatically&lt;/a&gt; from data sources; and, making the &lt;a href="http://trac.osgeo.org/mapserver/wiki/RenderingPluginStatus"&gt;rendering subsystem pluggable&lt;/a&gt;. Here they are deep in discussion on the rendering design:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/4376445771/" title="photo by pwramsey3, on Flickr"&gt;&lt;img src="http://farm5.static.flickr.com/4044/4376445771_036bc5344a.jpg" width="500" height="375" alt="MapServer Conclave"  style="border: solid 1px #777;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Automatic projection reading will make it easier for new users to work with data in mixed projections, because they will no longer have to manually populate PROJECTION blocks for their layers. They will be able to just set PROJECTION to AUTO.&lt;br /&gt;&lt;br /&gt;The pluggable rendering upgrade is mostly of interest to programmers, but because it will clean up the plumbing in drawing maps, it will allow new features like KML, PDF and SVG output to be added much more easily. In fact, Assefa is currently working on &lt;a href="http://mapserver.org/development/rfc/ms-rfc-58.html"&gt;KML output&lt;/a&gt;, using the new rendering design.&lt;br /&gt;&lt;br /&gt;Keeping to himself quietly, Alan Boudreault is tying the XML Mapfile more tightly into MapServer. In the last revision, XML Mapfiles could be transformed to .map format with a utility. In the next revision, it will be possible to use them directly from the MapServer CGI program.&lt;br /&gt;&lt;br /&gt;Over on the Geoserver side, Andrea Aime arrived from Italy last night, and today is adding the WMS GetStyles operation to Geoserver. Andreas Hocevar is working on tying together printing support in Geoserver and GeoExt. The scripting engine crew continues to beaver away on Javascript/Python/Scala scripting in Geoserver.&lt;br /&gt;&lt;br /&gt;In PostGIS land, Olivier Courtin has blasted a pile of changes into PostGIS trunk, working on moving GML/KML/SVG support down into the core geometry library, where they will be easier to reuse. On a similar tack, I've been working on writing a new WKT emitter, that is easier to maintain and supports ISO WKT for extended types and dimensions.&lt;br /&gt;&lt;br /&gt;Thanks again to our sponsors! In an hour we will be settling in to watch the Canada/USA hockey game on the big screen in the Open Plans penthouse. Go Canada!&lt;br /&gt;&lt;br /&gt;&lt;div style="vertical-align:center; text-align:center;" &gt;&lt;a href="http://www.azavea.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4023/4398161023_8b37ecdd58_o.png" alt="Azavea" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://www.lizardtech.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4037/4363909195_a73ab7d789_o.jpg" alt="LizardTech" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.coordinatesolutions.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4003/4364650774_9561cfe97a_o.jpg" alt="Coordinate Solutions" border="0" /&gt;&lt;/a&gt; &lt;br/&gt;&lt;a href="http://opengeo.org/"&gt;&lt;img src="http://farm5.static.flickr.com/4072/4364650828_9b0562e902_o.jpg" alt="OpenGeo" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.qpublic.net/"&gt;&lt;img src="http://farm5.static.flickr.com/4012/4363909295_d1e4391317_o.jpg" alt="qPublic.net" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.fargeo.com/"&gt;&lt;img src="http://farm3.static.flickr.com/2690/4364650934_2305ed4739_o.jpg" alt="Farallon" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Canada disappoints! I blame Brodeur.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-9033916703249082140?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/9033916703249082140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=9033916703249082140' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9033916703249082140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9033916703249082140'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/nyc-sprint-day-2.html' title='NYC Sprint: Day 2'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2794/4376132629_d5ea4065b3_t.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6399884612652825192</id><published>2010-02-20T11:24:00.000-08:00</published><updated>2010-03-01T09:16:36.724-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgeo'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><title type='text'>NYC Sprint: Day 1</title><content type='html'>On a bright day in NYC, we all convened in the sunny Open Plans event room for the first day. As in last years sprint, the morning was spent in planning and discussions, and the afternoon folks began digging in.&lt;br /&gt;&lt;br /&gt;The MapServer team talked about release plans for 6.0, and came up with &lt;a href="http://trac.osgeo.org/mapserver/wiki/60ReleasePlan"&gt;an ambitious release plan&lt;/a&gt;. They recognize that not every item on the plan will make the final cut, but hope that most will find either funded or community effort to bring about. Among the highlights (to me):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pluggable renderer&lt;/b&gt; would allow a much cleaner rendering chain, and new renderers for new formats to be more easily added. &lt;b&gt;filterObj&lt;/b&gt; to enhance the power of MapServer querying and support OGC Filter fully (and incidentally leverage the power of databases like PostGIS more fully). &lt;b&gt;Named styles&lt;/b&gt; to allow re-use of style objects through a map file, instead of repeating the definitions over and over.&lt;br /&gt;&lt;br /&gt;I also talked with Steve Lime and Jim Klassen about &lt;a href="http://trac.osgeo.org/mapserver/ticket/3305"&gt;a bug&lt;/a&gt; in the one-pass rendering code that is making complex WFS queries fail. We think we have a solution and Assefa is doing the final tests.&lt;br /&gt;&lt;br /&gt;The PostGIS discussions were about our &lt;a href="http://trac.osgeo.org/postgis/wiki/DevelopmentDiscussion"&gt;2.0 roadmap&lt;/a&gt; and what the implications of various changes are. Unfortunately, most of my proposed/desired changes are predicated are a large change to the underlying data serialization, so going forward requires a good deal of bravery &amp;ndash; I have to burn down the village in order to save it. Olivier Courtin is working on more tractable new features: a polyhedral surface, suitable for storing 3D buildings and other objects that have grown increasingly common.&lt;br /&gt;&lt;br /&gt;David Zwarg and Jeff Adams from Avencia joined the PostGIS group, and are working hard already: David on WKTRaster and Jeff on a geographic coordinates formatting routine. Don't tell Jeff, but if he gets the output formatter working, I'm just going to ask him to try and write an ingester.&lt;br /&gt;&lt;br /&gt;Justin Deoliveira and Tim Schaub began working on improving the scripting extensions to Geoserver, Tim working on the server-side JavaScript and Justin working on the Python (and David Winslow working on Scala!). Andreas Hocevar has begun a Google Maps V3 API layer for OpenLayers, which will allow Google layers without API keys in OpenLayers (yay!).&lt;br /&gt;&lt;br /&gt;As usual, the team had to be driven into the night bodily at the end of the day &amp;ndash; it is hard to pry nerds from their code.&lt;br /&gt;&lt;br /&gt;Thanks to our 2010 sprint sponsors, for keeping us well supplied with food, drinks and coffee throughout this busy week!&lt;br /&gt;&lt;br /&gt;&lt;div style="vertical-align:center; text-align:center;" &gt;&lt;a href="http://www.azavea.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4023/4398161023_8b37ecdd58_o.png" alt="Azavea" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://www.lizardtech.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4037/4363909195_a73ab7d789_o.jpg" alt="LizardTech" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.coordinatesolutions.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4003/4364650774_9561cfe97a_o.jpg" alt="Coordinate Solutions" border="0" /&gt;&lt;/a&gt; &lt;br/&gt;&lt;a href="http://opengeo.org/"&gt;&lt;img src="http://farm5.static.flickr.com/4072/4364650828_9b0562e902_o.jpg" alt="OpenGeo" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.qpublic.net/"&gt;&lt;img src="http://farm5.static.flickr.com/4012/4363909295_d1e4391317_o.jpg" alt="qPublic.net" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.fargeo.com/"&gt;&lt;img src="http://farm3.static.flickr.com/2690/4364650934_2305ed4739_o.jpg" alt="Farallon" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;B&gt;Postscript:&lt;/b&gt; At the end of the day, Olivier and I settled on an order-of-operations to move towards the new database serialization in PostGIS. Step one, remove the current places in the code where the serialization pokes up into function code and get it completely isolated underneath a serialize/deserialize layer.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6399884612652825192?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6399884612652825192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6399884612652825192' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6399884612652825192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6399884612652825192'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/nyc-sprint-day-1.html' title='NYC Sprint: Day 1'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-7455667436424591716</id><published>2010-02-19T09:00:00.000-08:00</published><updated>2010-03-01T09:15:38.271-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgeo'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><title type='text'>NYC Sprint: Day 0</title><content type='html'>&lt;img src="http://wiki.osgeo.org/images/8/89/I_osgeo_ny.png" style="width:150px; float:right;"/&gt;Here we go! 23 programmers are winging their way to the Big Apple to take part in the &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010"&gt;New York code sprint&lt;/a&gt;, combining coding talent talent from MapServer, PostGIS, GDAL, OpenLayers, Geoserver, LibLAS, and, and, and!&lt;br /&gt;&lt;br /&gt;I am in the air right now, and am looking forward to meeting up with the sprinters at the &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010#Social_Events"&gt;Broome Street Bar&lt;/a&gt; (363 W Broadway) this evening.&lt;br /&gt;&lt;br /&gt;Thanks to our 2010 sprint sponsors, for keeping us well supplied with food, drinks and coffee throughout this busy week!&lt;br /&gt;&lt;br /&gt;&lt;div style="vertical-align:center; text-align:center;" &gt;&lt;a href="http://www.azavea.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4023/4398161023_8b37ecdd58_o.png" alt="Azavea" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://www.lizardtech.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4037/4363909195_a73ab7d789_o.jpg" alt="LizardTech" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.coordinatesolutions.com/"&gt;&lt;img src="http://farm5.static.flickr.com/4003/4364650774_9561cfe97a_o.jpg" alt="Coordinate Solutions" border="0" /&gt;&lt;/a&gt; &lt;br/&gt;&lt;a href="http://opengeo.org/"&gt;&lt;img src="http://farm5.static.flickr.com/4072/4364650828_9b0562e902_o.jpg" alt="OpenGeo" border="0"  /&gt;&lt;/a&gt; &lt;a href="http://www.qpublic.net/"&gt;&lt;img src="http://farm5.static.flickr.com/4012/4363909295_d1e4391317_o.jpg" alt="qPublic.net" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.fargeo.com/"&gt;&lt;img src="http://farm3.static.flickr.com/2690/4364650934_2305ed4739_o.jpg" alt="Farallon" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-7455667436424591716?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/7455667436424591716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=7455667436424591716' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7455667436424591716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7455667436424591716'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/nyc-sprint-day-0.html' title='NYC Sprint: Day 0'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6534473362228620861</id><published>2010-02-18T09:47:00.000-08:00</published><updated>2010-02-18T09:52:19.143-08:00</updated><title type='text'>Hotel California</title><content type='html'>I recently bought a set of wireless handsets that include a digital answering machine, so I figured I should be economical and cancel my voicemail. This is the internet age, so I pay my bills and manage my phone account online. Go to my account page, a little hunting, and there's all the options available for voice mail.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm5.static.flickr.com/4014/4368461046_3b43e12f99_o.png" alt="You can check in any time you like..." /&gt;&lt;br /&gt;&lt;br /&gt;Note that the check mark next to voicemail service is grayed out! You can &lt;b&gt;add&lt;/b&gt; services via the web interface, but you can't remove them! I'd switch to the other phone company, but there isn't one. All I've got is the cable company, and they recently shut off my internet for a week, which put somewhat of a crimp in my working-from-home (became working-from-cafe).&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6534473362228620861?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6534473362228620861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6534473362228620861' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6534473362228620861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6534473362228620861'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/hotel-california.html' title='Hotel California'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1180460429799981765</id><published>2010-02-09T21:25:00.000-08:00</published><updated>2010-02-09T22:20:50.828-08:00</updated><title type='text'>More Googlesoft</title><content type='html'>&lt;img src="http://www.wired.com/wired/archive/12.03/images/FF_118_google_4.jpg" style="float:right; padding:6px;" alt="Googlesoft" /&gt;More great news from the G-Men and G-Girls down in Mountain View &amp;ndash; social networking goodness is now available from Google, in the form of &lt;a href="http://www.google.com/buzz"&gt;Google Buzz&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Since their first attempt at a standalone social network, &lt;a href="http://www.orkut.com/"&gt;Orkut&lt;/a&gt;, never achieved escape velocity (&lt;i&gt;exceto no Brasil!&lt;/i&gt;), Google is trying again. Only this time, they are stealing a page from Microsoft and using an existing dominant franchise to force their new offering into the marketplace. Oh, and incidentally crush the incumbents.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://news.cnet.com/8301-30684_3-10449662-265.html"&gt;CNET coverage&lt;/a&gt; has this perfect sentence:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Google is attempting to do this [compete with Facebook] by taking Gmail, one of its more popular products, and integrating Buzz directly into the Gmail interface.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I mean, the parallel construction just writes itself! &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Microsoft is attempting to do this [compete with Netscape] by taking Windows, one of its more popular products, and integrating Internet Explorer directly into the Windows interface.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;But Google's not content to just crush a strong competitor by leveraging their market-leading franchise! Remember, these are the smartest people in technology! Today they &lt;b&gt;also&lt;/b&gt; announced they'll be crushing a few puny start-ups.  &lt;a href="http://foursquare.com/"&gt;Fourquare&lt;/a&gt; and &lt;a href="http://gowalla.com"&gt;Gowalla&lt;/a&gt;, with all of 200,000 subscribers between them (divide that number into their $20M in combined venture money for a laugh) will henceforth be known as "that thing I tried before &lt;a href="http://www.google.com/intl/en/mobile/buzz/"&gt;Google Buzz for mobile&lt;/a&gt; came along".&lt;br /&gt;&lt;br /&gt;&lt;small&gt;(Incidentally, I'm looking forward to the day I receive my last Foursquare-initiated tweet, that charming idea got old incredibly fast. &lt;b&gt;&lt;i&gt;I don't care if you're at the 7-11!&lt;/i&gt;&lt;/b&gt;)&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;Keep on sucking up all the oxygen in the room G-People, yours is the fire that purifies, that consumes us down to the ashes of our soul and monetizes the dust left behind.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1180460429799981765?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1180460429799981765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1180460429799981765' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1180460429799981765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1180460429799981765'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/more-googlesoft.html' title='More Googlesoft'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3774949531892289503</id><published>2010-02-05T12:11:00.000-08:00</published><updated>2010-02-05T12:17:02.117-08:00</updated><title type='text'>Chocolate and Peanut Butter?</title><content type='html'>My two favourite things, ArcView 3 and PostGIS, together at last...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lac-conakry.blogspot.com/2010/02/postgis-mis-jour-o.html"&gt;&lt;img src="http://4.bp.blogspot.com/_tFdskxT_0Jo/S0hzRKw9gHI/AAAAAAAAO10/YLscWnDZUdE/s1600/PostGIS.jpg" width="500" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3774949531892289503?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3774949531892289503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3774949531892289503' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3774949531892289503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3774949531892289503'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/chocolate-and-peanut-butter.html' title='Chocolate and Peanut Butter?'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_tFdskxT_0Jo/S0hzRKw9gHI/AAAAAAAAO10/YLscWnDZUdE/s72-c/PostGIS.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-5948050448019760171</id><published>2010-02-01T17:14:00.000-08:00</published><updated>2010-02-01T20:17:35.359-08:00</updated><title type='text'>Die legacy, die!</title><content type='html'>&lt;img src="http://vampires.monstrous.com/pictures/vampire10.jpg" style="float:right;height:250px;padding:5px"/&gt;'Tis the season to drive a stake through the heart of old technology apparently.  Steve Jobs appears to be &lt;a href="http://www.informationweek.com/news/infrastructure/management/showArticle.jhtml?articleID=222600577"&gt;taking especial glee&lt;/a&gt; in killing off Flash as a video format. And Google is &lt;a href="http://blogs.computerworld.com/15509/google_internet_explorer_6_and_chrome_3_must_die"&gt;doing their damnedest&lt;/a&gt; to run IE6 out of town.  It takes a certain amount of self-confidence in yourself to pit your unstoppable force against the immovable object of an entrenched de facto standard, but both Apple and Google seemed positioned to carry it off.&lt;br /&gt;&lt;br /&gt;In the case of Google, the sheer number of alternatives, ease of access to those alternatives, and popularity of their products will be enough to pry the final population of IE6 users out of their millennial stupor.&lt;br /&gt;&lt;br /&gt;For Jobs, the task requires more balls (right now, his crown jewel iPhone is &lt;a href="http://www.macrumors.com/2010/01/30/apple-corrects-ipad-promo-video-to-show-no-flash-capability/"&gt;showing lots of holes&lt;/a&gt; in web pages where Flash content should be), but is slightly easier, because he doesn't have convince millions of users to change their software, he only has to convince a handful of web sites to &lt;a href="http://www.youtube.com/html5"&gt;add an HTML5 option&lt;/a&gt;. And the &lt;a href="http://en.wikipedia.org/wiki/HTML5"&gt;HTML5 standard&lt;/a&gt; on video embedding is just close enough to "ready" that those sites (YouTube, vimeo, etc) will begin providing HTML5-based alternatives to browsers that can support them (like, the iPad, and Safari, and the iPhone).&lt;br /&gt;&lt;br /&gt;I wish godspeed to both Apple and Google in their endeavors, since both Flash video and IE6 can't hit the scrapheap soon enough, in my opinion.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-5948050448019760171?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/5948050448019760171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=5948050448019760171' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5948050448019760171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/5948050448019760171'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/02/die-legacy-die.html' title='Die legacy, die!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6711599897897473781</id><published>2010-01-26T09:13:00.001-08:00</published><updated>2010-01-26T09:29:39.112-08:00</updated><title type='text'>Happy Jobsmas Eve!</title><content type='html'>How does your family mark Jobsmas Eve? Do you sing 1,2,3,4 and dance around your AirPort Extreme router, like my family? Or do you have a more relaxed, modern Jobsmas Eve, and just play networked iPod games together?&lt;br /&gt;&lt;br /&gt;While, obviously, I am excited about the approach of Jobsmas, I find the hand-wringing and obsession about the physical shape of the Gift to be a bit over the top. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://images.macrumors.com/article/2010/01/25/155026-tablet_2_2_500.jpg" alt="Possible Representation of the Gift" /&gt;&lt;br /&gt;&lt;br /&gt;No matter what, it's going to be a glass slab about the size of a hard cover book, OK? Does it really matter if the back is silver or black? What gets my Jobsmas noodles in a knot is ... what is it going to &lt;b&gt;do&lt;/b&gt;??? &lt;br /&gt;&lt;br /&gt;It's all about the software, how is this Gift different from the Gifts that have come before? Will the the new feature be something pointless and pretty like "Cover Flow", or something useful and immediately intuitive like "flick to scroll"? Pointless and pretty would be &lt;a href="http://www.youtube.com/watch?v=Jd3-eiid-Uw"&gt;virtual 3D display&lt;/a&gt; via head tracking.  Useful and intuitive would be &lt;a href="http://www.macrumors.com/2010/01/12/islate-input-alternatives-handwriting-recognition-without-a-stylus-and-much-more/"&gt;pen-less handwriting&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;No matter what, I am looking forward to getting up tomorrow, putting on my black turtleneck and black jeans, and celebrating true spirit of Jobsmas, by oggling the Gift and figuring out how it Changes Everything.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6711599897897473781?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6711599897897473781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6711599897897473781' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6711599897897473781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6711599897897473781'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/01/happy-jobsmas-eve.html' title='Happy Jobsmas Eve!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-8755665542113216265</id><published>2010-01-04T07:30:00.000-08:00</published><updated>2010-01-22T10:29:34.307-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgis'/><category scheme='http://www.blogger.com/atom/ns#' term='grass'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><category scheme='http://www.blogger.com/atom/ns#' term='mapserver'/><title type='text'>New York Code Sprint 2010</title><content type='html'>&lt;b&gt;Update: We're expanding from the "C tribe" to the "curly  braces tribe" and bringing in some JavaScripters too. Tim Schaub &lt;i&gt;and&lt;/i&gt; Andreas Hocevar of OpenLayers/GeoExt will be joining the crew!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 2: If you haven't &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010#Participation"&gt;added your name&lt;/a&gt; to the wiki and &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010#Hotel"&gt;booked your hotel room&lt;/a&gt;, you don't exist! GeoExt, OpenLayers folks don't delay! &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 3: &lt;a href="http://www.avencia.com/"&gt;Avencia&lt;/a&gt; has joined as a sponsor (and is sending a couple staff to join in the fun). Along with OpenGeo, who are providing us with lovely space and free internet access, that bring our sponsorship docket to &lt;a href="http://www.lizardtech.com/"&gt;LizardTech&lt;/a&gt;, &lt;a href="http://www.coordinatesolutions.com"&gt;Coordinate Solutions&lt;/a&gt;, &lt;a href="http://www.qpublic.net/"&gt;qPublic.net&lt;/a&gt;, &lt;a href="http://fargeo.com/"&gt;Farallon Geographics&lt;/a&gt;, &lt;a href="http://www.avencia.com/"&gt;Avencia&lt;/a&gt; and &lt;a href="http://oepngeo.org/"&gt;OpenGeo&lt;/a&gt;!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 4: Other members of the curly braces tribe will be in attendance, in the persons of Justin Deoliveira, Andrea Aime, and Gabriel Roldan from GeoServer. I'm looking forward to working with them on adding PostGIS 1.5 GEOGRAPHY support in GeoServer.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://wiki.osgeo.org/images/8/89/I_osgeo_ny.png" style="float:right;"/&gt;Whoops, it's 2010! How did that happen?&lt;br /&gt;&lt;br /&gt;I hope all members of the open source C tribe have gone beyond thinking about attending the &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010"&gt;New York Code Sprint&lt;/a&gt; (February 20 to 23) and moved into the travel planning stage! Don't forget to book your hotel, the room block closes in three weeks.&lt;br /&gt;&lt;br /&gt;The list of attendees includes top contributors from MapServer, GDAL, OGR, and LibLAS. I'm feeling a little lonely at the PostGIS table with just Olivier to keep me company. And where are the folks from QGIS, Mapnik and GRASS? We love you guys! Come on, group hug. There you go.&lt;br /&gt;&lt;br /&gt;We have four great sponsors now (&lt;a href="http://www.lizardtech.com/"&gt;LizardTech&lt;/a&gt;, &lt;a href="http://www.coordinatesolutions.com"&gt;Coordinate Solutions&lt;/a&gt;, &lt;a href="http://www.qpublic.net/"&gt;qPublic.net&lt;/a&gt;, &lt;a href="http://fargeo.com/"&gt;Farallon Geographics&lt;/a&gt;) and are looking for a couple more to round out the event. Thanks to our sponsors so far!&lt;br /&gt;&lt;br /&gt;Remember to sign up to the mailing list and add yourself to the wiki page so we know you are coming, and you receive all the event notices, it's impossible to plan for you if we don't know you exist. See you soon in the Big Apple!&lt;br /&gt;&lt;br /&gt;&lt;small&gt;Thanks to Joel Schlagel for the logo!&lt;/small&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-8755665542113216265?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/8755665542113216265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=8755665542113216265' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8755665542113216265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/8755665542113216265'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/01/new-york-code-sprint-2010.html' title='New York Code Sprint 2010'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4717279464911559531</id><published>2010-01-01T19:17:00.001-08:00</published><updated>2010-01-01T19:21:45.652-08:00</updated><title type='text'>FOSS4G 2010 Savings</title><content type='html'>&lt;a href="http://2010.foss4g.org/"&gt;&lt;img src="http://www.postgresonline.com/images/foss4g2010_small.png" style="float:right;padding-bottom:10px; padding-left:10px; border=0" alt="FOSS4G 2010" /&gt;&lt;/a&gt;If you know you're going to FOSS4G 2010 in Barcelona this year, you can save 20% by taking advantage of the &lt;a href="http://2010.foss4g.org/registration.php"&gt;Sooper Dooper Early Registration&lt;/a&gt; rates.  Rates end January 15, the early bird gets the savings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4717279464911559531?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4717279464911559531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4717279464911559531' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4717279464911559531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4717279464911559531'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2010/01/foss4g-2010-savings.html' title='FOSS4G 2010 Savings'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2033562956570873985</id><published>2009-12-22T11:32:00.000-08:00</published><updated>2009-12-22T11:35:41.983-08:00</updated><title type='text'>Deep Thought</title><content type='html'>If "open" is &lt;a href="http://news.cnet.com/8301-13505_3-10420220-16.html"&gt;good at making others loose&lt;/a&gt;, and &lt;a href="http://abovethecrowd.com/2009/10/29/google-redefines-disruption-the-“less-than-free”-business-model/"&gt;less than free&lt;/a&gt; is the model for things outside your core revenue stream, why isn't Microsoft giving away free advertising?&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2033562956570873985?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2033562956570873985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2033562956570873985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2033562956570873985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2033562956570873985'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/12/deep-thought.html' title='Deep Thought'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-455244280837819208</id><published>2009-12-16T14:58:00.001-08:00</published><updated>2009-12-16T15:00:15.606-08:00</updated><title type='text'>Abstracterrific!</title><content type='html'>&lt;a href="http://mcfunley.com/"&gt;Dan McKinley&lt;/a&gt; takes a look under the covers of a couple Python PostgreSQL abstraction layers:&lt;blockquote&gt;Database client drivers intended for the same database can do drastically different things. By Python standards, the Postgres driver situation is completely schizo. There are a lot of them available - there are five dedicated Postgres drivers listed on the wiki, as opposed to just one for MySQL. People might choose different drivers for licensing reasons, for religious reasons, randomly (because they never did any analysis like I am about to do), or for completely inscrutable reasons because they are just plain out of their minds. You really would not believe how much blood I have seen spilled over Postgres client drivers.&lt;/blockquote&gt;&lt;a href="http://mcfunley.com/445/python-postgresql-driver-authors-hate-you"&gt;Read it!&lt;/a&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-455244280837819208?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/455244280837819208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=455244280837819208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/455244280837819208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/455244280837819208'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/12/abstracterrific.html' title='Abstracterrific!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-9042852618372074120</id><published>2009-12-15T22:19:00.000-08:00</published><updated>2009-12-15T22:31:07.763-08:00</updated><title type='text'>Goo Smart by Half</title><content type='html'>I typed "postgis" into Google this evening, and in addition to the exquisitely organized first entry there were two ads, one relevant (EnterpriseDB, the Postgres company) and one &lt;b&gt;seemingly&lt;/b&gt; utterly random, for an English language school.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm3.static.flickr.com/2778/4189734356_9a8be3d771_o.gif" width="550"&gt;&lt;br /&gt;&lt;br /&gt;Has the Google algorithm made a mistake? How is this relevant? Well, the language school &lt;b&gt;is&lt;/b&gt; in Victoria, BC, birth-place of PostGIS, but it gets better than that.&lt;br /&gt;&lt;br /&gt;Here's a picture of their sign, which I walked past every morning for almost five years, since the school shares a building (1207 Douglas Street) with Refractions Research, birth-company of PostGIS.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm2.static.flickr.com/1349/1445143912_3ec077175a_m.jpg"&gt;&lt;br /&gt;&lt;br /&gt;But wait, there's more! The name of the school is "GEOS Language Academy", and the &lt;a href="http://trac.osgeo.org/geos"&gt;GEOS&lt;/a&gt; spatial library was also created in Victoria, specifically to bring spatial predicate algorithms to PostGIS!&lt;br /&gt;&lt;br /&gt;Poor Google algorithm, you never stood a chance.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-9042852618372074120?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/9042852618372074120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=9042852618372074120' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9042852618372074120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/9042852618372074120'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/12/goo-smart-by-half.html' title='Goo Smart by Half'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm2.static.flickr.com/1349/1445143912_3ec077175a_t.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1962022380455197878</id><published>2009-12-15T13:06:00.000-08:00</published><updated>2009-12-15T13:09:24.841-08:00</updated><title type='text'>PgPatch!</title><content type='html'>It's not much, but it's not nothing, my first ever patch to PostgreSQL proper is part of yesterday's &lt;a href="http://www.postgresql.org/docs/8.4/static/release-8-4-2.html"&gt;8.4.2 release&lt;/a&gt;:&lt;blockquote&gt;Fix incorrect logic for GiST index page splits, when the split depends on a non-first column of the index (Paul Ramsey)&lt;/blockquote&gt;It was just a minor syntax error I found because I was reading through that section of the code &lt;em&gt;very, very, very&lt;/em&gt; closely (it's true, I copy the work of smarter people than I) while implementing the indexes for GEOGRAPHY in PostGIS 1.5.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1962022380455197878?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1962022380455197878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1962022380455197878' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1962022380455197878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1962022380455197878'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/12/pgpatch.html' title='PgPatch!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1706889555645827424</id><published>2009-12-10T15:09:00.000-08:00</published><updated>2009-12-10T15:12:42.113-08:00</updated><title type='text'>Extra, extra, PostGIS Really Fast!</title><content type='html'>Because, frankly, I love nothing more than approbation, I am going to quote &lt;a href="http://blog.cleverelephant.ca/2009/01/must-faster-unions-in-postgis-14.html?showComment=1260481766531#c388201837491522179"&gt;this comment&lt;/a&gt; on "&lt;a href="http://blog.cleverelephant.ca/2009/01/must-faster-unions-in-postgis-14.html"&gt;Much Faster Unions in PostGIS&lt;/a&gt;" in full:&lt;blockquote&gt;This is a truly spectacular piece of work. We have often been asked by clients to buffer and merge point datasets with several million points. We attempted this using ArcWhatever (could barely open the points, let along buffer them) and FME, which ran for a week and then gave an out of memory error. So, I do the whole configure, make, make install thing, 4 times, for postgres, goes, proj4 and postgis. After a lot of swearing and running ldconfig a few million times I eventually get postgis to accept that geos really is installed -- MySQL might have more limited spatial functionality, but it sure is a lot easier to build from source. Anyway, I digress. I run a few random queries using the excellent generate series capability in postgres, and manage to create, buffer and merge 100,000 points in a few seconds. Finally, I try this on a real world dataset, namely all of the postal addresses in Wales, 1.4 million or so. With a 200m buffer, this ran on a reasonably pokey 64-bit linux box in 19 minutes. Truly astonishing. Well done. Much as I love MySQL, this was a bit of St. Paul on the road to Damascus moment. &lt;/blockquote&gt;Full credit to Martin Davis, who &lt;a href="http://lin-ear-th-inking.blogspot.com/2007/11/fast-polygon-merging-in-jts-using.html"&gt;implemented this technique&lt;/a&gt; in JTS. We just borrowed it for database land.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1706889555645827424?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1706889555645827424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1706889555645827424' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1706889555645827424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1706889555645827424'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/12/extra-extra-postgis-really-fast.html' title='Extra, extra, PostGIS Really Fast!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-7138817294647745612</id><published>2009-12-04T15:26:00.002-08:00</published><updated>2009-12-11T13:46:33.660-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgis'/><category scheme='http://www.blogger.com/atom/ns#' term='sprint'/><category scheme='http://www.blogger.com/atom/ns#' term='mapserver'/><title type='text'>Code Sprint 2010: New York City</title><content type='html'>It's official! Following the success of the &lt;a href="http://wiki.osgeo.org/wiki/Toronto_Code_Sprint_2009"&gt;2009 Toronto Code Sprint&lt;/a&gt; a second event &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010"&gt;will be taking place&lt;/a&gt; in New York City, this winter.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://farm1.static.flickr.com/120/292715372_56a910c585.jpg" align="center"/&gt;&lt;br /&gt;&lt;br /&gt;This code sprint will bring together the developers for the &lt;a href="http://mapserver.org/"&gt;MapServer&lt;/a&gt;, &lt;a href="http://postgis.org/"&gt;PostGIS&lt;/a&gt;, &lt;a href="http://gdal.org/"&gt;GDAL&lt;/a&gt;, &lt;a href="http://grass.itc.it/"&gt;GRASS&lt;/a&gt;, &lt;a href="http://gdal.org"&gt;OGR&lt;/a&gt;, &lt;a href="http://liblas.org/"&gt;LibLAS&lt;/a&gt;, &lt;a href="http://qgis.org/"&gt;QGIS&lt;/a&gt;, &lt;a href="http://trac.osgeo.org/proj/"&gt;Proj4&lt;/a&gt; and other projects that are part of the "C Tribe" of open source software.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Timing:&lt;/b&gt; Saturday, February 20 to Tuesday, February 23, 9am to 4pm.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Location:&lt;/b&gt; OpenGeo Event Room, &lt;a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=148+Lafayette+St,+New+York,+NY+10013&amp;sll=37.0625,-95.677068&amp;sspn=50.244827,62.402344&amp;ie=UTF8&amp;hq=&amp;hnear=148+Lafayette+St,+New+York,+10013&amp;z=16"&gt;148 Lafayette St&lt;/a&gt;, New York, New York&lt;br /&gt;&lt;br /&gt;&lt;b&gt;More Information:&lt;/b&gt; &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010"&gt;Wiki Page&lt;/a&gt;, &lt;a href="http://lists.osgeo.org/mailman/listinfo/tosprint"&gt;Mailing List&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Sponsor this event!&lt;/b&gt; Last year, sponsorship dollars paid for venue and dinners for the sprinters, who gave up their weekends and more to invest a collective 736 man hours in making their open source project stronger. Thanks again to our 2009 sponsors: &lt;a href="http://www.greenwoodmap.com/"&gt;Rich Greenwood&lt;/a&gt;, &lt;a href="http://www.osgis.nl/index_en.htm"&gt;OSGIS.nl&lt;/a&gt;, &lt;a href="http://www.coordinatesolutions.com"&gt;Coordinate Solutions&lt;/a&gt;, &lt;a href="http://www.lizardtech.com/"&gt;LizardTech&lt;/a&gt;, &lt;a href="http://www.sjgeophysics.com/"&gt;SJ Geophysics&lt;/a&gt;, &lt;a href="http://qpublic.net/"&gt;qPublic.net&lt;/a&gt;, &lt;a href="http://www.gdal.org/"&gt;GDAL&lt;/a&gt;! If you want to sponsor this event, and raise your profile with the 2 dozen people who make your software sing, please &lt;a href="http://www.cleverelephant.ca/"&gt;contact me&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Thanks to our first 2010 sponsors, &lt;a href="http://www.coordinatesolutions.com"&gt;Coordinate Solutions&lt;/a&gt;, &lt;a href="http://www.lizardtech.com/"&gt;LizardTech&lt;/a&gt;, and &lt;a href="http://www.qpublic.net/"&gt;qPublic.net&lt;/a&gt;! We are still &lt;a href="http://wiki.osgeo.org/wiki/New_York_Code_Sprint_2010#Sponsors"&gt;looking for sponsors&lt;/a&gt; for 2010!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-7138817294647745612?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/7138817294647745612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=7138817294647745612' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7138817294647745612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7138817294647745612'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/12/code-sprint-2010-new-york-city_04.html' title='Code Sprint 2010: New York City'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/120/292715372_56a910c585_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2883792427512414375</id><published>2009-12-01T19:56:00.000-08:00</published><updated>2009-12-01T19:58:41.893-08:00</updated><title type='text'>Perfect</title><content type='html'>The New York Times political blog has &lt;a href="http://thecaucus.blogs.nytimes.com/2009/12/01/live-blogging-obamas-afghan-speech/"&gt;instant commentary&lt;/a&gt; on Obama's Afghanistan speech tonight, and the one-sentence teaser in the RSS feed speaks volumes:&lt;blockquote&gt;In an address aimed at rank-and-file Americans, Mr. Obama did not call for sacrifices.&lt;/blockquote&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2883792427512414375?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2883792427512414375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2883792427512414375' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2883792427512414375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2883792427512414375'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/12/perfect.html' title='Perfect'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-2422858832117107392</id><published>2009-11-30T17:16:00.000-08:00</published><updated>2009-11-30T18:46:47.064-08:00</updated><title type='text'>Is "Good Enough" Good Enough?</title><content type='html'>The gift that keeps on giving, for me, is performance work. Users love it, and it tickles my cerebral cortex in a way other work just cannot touch. Some of my first substantive patches to MapServer were performance patches, and I've also taken that tack into PostGIS.&lt;br /&gt;&lt;br /&gt;One of the things that surprised me while investigating the MapServer QIX index structure was how little a badly built tree impacted real world performance. The QIX file, when built on point files, tends to build in far more depth than it needs, strictly speaking. The extra depth adds theoretical time to traverse the tree for searches and yet... even when I tested quite huge shape files the performance was fine.&lt;br /&gt;&lt;br /&gt;Recently I've been looking again at internally indexing geometries for high performance testing of things like distance and intersections. We already have some of this for PostGIS, using the GEOS "PreparedGeometry" construction, but I'd like a native implementation, and something that doesn't necessarily depend on a cached implementation.&lt;br /&gt;&lt;br /&gt;There is already a form of internally indexed testing in PostGIS, in the point-in-polygon case, and while reading it over I was struck by the elegance of the underlying assumption: rather than pre-sort the geometry edges, and then build the tree, the implementation simply scans the point array from start to finish and builds parent nodes from each successive pair of nodes. The result is not a perfect tree, by any stretch of the imagination, but... it's good enough. Because the edges are spatially auto-correlated, the parent nodes end up having good locality. &lt;br /&gt;&lt;br /&gt;The beauty of this approach to index building is that since there is no sorting step and no re-balancing of the tree or any of that fancy stuff, you can actually build an "index" in O(n) time. A brute force intersection test is O(nm) time. But if you can build your indexes in O(n) time the cost of doing an intersection starts to get closer to O(n+m) time! (Note, I am not a computer scientist and the O() term for the actual tree-on-tree intersection test is beyond my powers.)&lt;br /&gt;&lt;br /&gt;Now, since no sorting is being applied in the building of these "indexes" they could theoretically be terrible indexes. But since we're indexing GIS data, and the edges have this wonderful autocorrelation, they are actually "good enough", and obtainable in very little time.&lt;br /&gt;&lt;br /&gt;The same tricks apply to building indexes for intersection and distance in geodetic space, which I predict will be in hot demand once people experience just how computationally expensive operations on the new PostGIS 1.5 &lt;code&gt;geography&lt;/code&gt; type are!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-2422858832117107392?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/2422858832117107392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=2422858832117107392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2422858832117107392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/2422858832117107392'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/is-good-enough-good-enough.html' title='Is &quot;Good Enough&quot; Good Enough?'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-7708278764256093475</id><published>2009-11-23T19:21:00.001-08:00</published><updated>2009-11-23T19:30:18.129-08:00</updated><title type='text'>You get more than what you pay for!</title><content type='html'>Entchev &lt;a href="http://blog.entchev.com/2009/11/23/report-wikipedia-losing-volunteers-is-open-street-map-next.aspx?ref=rss"&gt;reflexively repeats&lt;/a&gt; one of the most foolish canards ever hurled against collaborative knowledge building (open source, open data, open knowledge)&lt;blockquote&gt;You get what you pay for.&lt;/blockquote&gt;Was there ever a putdown more easily falsifiable? &lt;br /&gt;&lt;br /&gt;You pay nothing for PostGIS. Is the value to you nothing? You pay nothing for Wikipedia. Is the value to you nothing? You pay nothing for Open Street Map, is the value to you... nothing? Clearly, you, and everyone, gets &lt;b&gt;more&lt;/b&gt; than what they pay for.&lt;br /&gt;&lt;br /&gt;Now, there are many arguments to be made and beers to be drunk over whether what you get is &lt;b&gt;enough for all possible purposes of all possible people&lt;/b&gt;. Some think that the trend in open knowledge is so strong that even that goal is within reach. Me, not so much. &lt;br /&gt;&lt;br /&gt;But clearly, everyone has access to these resources, for free, and what they get in return is more than what they paid.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-7708278764256093475?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/7708278764256093475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=7708278764256093475' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7708278764256093475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/7708278764256093475'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/you-get-more-than-what-you-pay-for.html' title='You get more than what you pay for!'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6835243013188546114</id><published>2009-11-13T14:06:00.000-08:00</published><updated>2009-11-13T19:07:14.510-08:00</updated><title type='text'>The First Rule of Fight Club...</title><content type='html'>Who knew that ESRI was so hip? From James Fee's &lt;a href="http://www.spatiallyadjusted.com/2009/11/10/running-arcgis-9-4-alongside-arcgis-9-3-1/"&gt;blog&lt;/a&gt;:&lt;blockquote&gt;Note: If you post any specific 9.4 Beta information (such as quoting forums posts on the Beta forums), expect ESRI to personally contact you. They appear to be monitoring this blog post. You’ve been warned.&lt;/blockquote&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6835243013188546114?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6835243013188546114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6835243013188546114' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6835243013188546114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6835243013188546114'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/first-rule-of-fight-club.html' title='The First Rule of Fight Club...'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-543673736665543687</id><published>2009-11-13T08:54:00.000-08:00</published><updated>2009-11-13T09:00:17.085-08:00</updated><title type='text'>Palanterra X3</title><content type='html'>James Fee has a nice &lt;a href="http://www.spatiallyadjusted.com/2009/11/13/the-map-bar-has-to-go/"&gt;rant&lt;/a&gt; on mapping interfaces today, but the part the piqued my interest was embedded in the screen shot of the National Map. It said "The National Map Viewer BETA: Powered by Palanterra X3"&lt;br /&gt;&lt;br /&gt;Interesting! Who or what is this Palanterra X3 who have managed to get a top-of-the-fold "Powered by" on a major USGS site? Oddly, the Google is &lt;a href="http://www.google.com/search?q=palanterra+x3"&gt;unusually terse&lt;/a&gt; about this topic. Looks like it's an NGA project, and yet it's "Palanterra (TM)". Intra-governmental entrepreneurship at its finest, a carefully imagined brand name that appears only in meeting agendas and powerpoints.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-543673736665543687?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/543673736665543687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=543673736665543687' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/543673736665543687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/543673736665543687'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/palanterra-x3.html' title='Palanterra X3'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1179931286932871030</id><published>2009-11-11T17:07:00.001-08:00</published><updated>2009-11-11T17:11:34.249-08:00</updated><title type='text'>FOSS4G hearts SoTM</title><content type='html'>A quiet bit of byplay is going on in the world of extreme geogeekery, as the &lt;a href="http://www.stateofthemap.org/"&gt;State of the Map&lt;/a&gt; conference, the annual gathering of the OpenStreetMap community, decides where to host their 2010 event. The twist for this year is that an intrepid member of their spanish community has &lt;a href="http://lists.osgeo.org/pipermail/foss4g2010/2009-October/000067.html"&gt;suggested&lt;/a&gt; hosting the event in Barcelona, to align with the &lt;a href="http://2010.foss4g.org"&gt;FOSS4G 2010&lt;/a&gt; event (either right before or right after). The OSM community decides on their site &lt;a href="http://www.opengeodata.org/2009/11/11/state-of-the-map-2010/"&gt;in early December&lt;/a&gt; &amp;ndash; I'll add my non-binding "ooooooooh, I hopehopehopehopehope they choose Barcelona!"&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1179931286932871030?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1179931286932871030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1179931286932871030' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1179931286932871030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1179931286932871030'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/foss4g-hearts-sotm.html' title='FOSS4G hearts SoTM'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-6752375204523475448</id><published>2009-11-05T07:00:00.000-08:00</published><updated>2009-11-05T07:00:03.711-08:00</updated><title type='text'>State of PostGIS</title><content type='html'>I gave a 30 minute talk about the past present and future of PostGIS at &lt;a href="http://2009.foss4g.org"&gt;FOSS4G&lt;/a&gt; two weeks ago, and thanks to the efforts of the folks at &lt;a href="http://www.fosslc.org"&gt;FOSSLC&lt;/a&gt; it's now online as &lt;a href="http://blip.tv/file/2788616/"&gt;a video&lt;/a&gt;.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-6752375204523475448?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/6752375204523475448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=6752375204523475448' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6752375204523475448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/6752375204523475448'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/state-of-postgis.html' title='State of PostGIS'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3403960739921712772</id><published>2009-11-04T15:25:00.000-08:00</published><updated>2009-11-04T15:36:48.841-08:00</updated><title type='text'>Geography and MapServer</title><content type='html'>Can you use the new PostGIS &lt;code&gt;GEOGRAPHY&lt;/code&gt; type with &lt;a href="http://mapserver.org"&gt;MapServer&lt;/a&gt;? Yes! Just make sure your LAYER declares a geographic projection (e.g. "init=epsg:4326", or "proj=lonlat") so the correct coordinates are passed in. For simple DATA definitions(e.g. DATA "thegeog from thetable"), that's all you have to do. I haven't tested out more complex DATA statements yet, but I am pretty sure they should work fine. &lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3403960739921712772?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3403960739921712772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3403960739921712772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3403960739921712772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3403960739921712772'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/geography-and-mapserver.html' title='Geography and MapServer'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-1134055540627336333</id><published>2009-11-03T13:46:00.000-08:00</published><updated>2009-11-06T13:47:49.715-08:00</updated><title type='text'>PostGIS gets Spherical (Directors Cut)</title><content type='html'>&lt;b&gt;Update:&lt;/b&gt; Installation instructions have changed slightly since this post was written.&lt;br /&gt;&lt;br /&gt;For a business oriented discussion of the new &lt;code&gt;GEOGRAPHY&lt;/code&gt; type, see &lt;a href="http://blog.opengeo.org/2009/11/04/postgis-gets-spherical/"&gt;my post on the OpenGeo blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://t3.gstatic.com/images?q=tbn:A6ab0_KaSzQg2M:http://www.avidimages.com/preview/2006/10/01/globe_world_map_avidimages_1045_prev.jpg" style="float:right; padding:5px;"/&gt;So you want to try the new &lt;code&gt;GEOGRAPHY&lt;/code&gt; type and see what it can do? Alright then!&lt;br /&gt;&lt;br /&gt;If you are running Windows, please follow the directions on the &lt;a href="http://www.postgis.org/download/windows/experimental.php"&gt;Windows experimental binaries&lt;/a&gt; download page on the PostGIS site. Note that these builds might not be the absolute latest versions available.&lt;br /&gt;&lt;br /&gt;If you are running Linux, fetch the latest code from SVN (svn checkout http://svn.osgeo.org/postgis/trunk postgis-svn) and then follow the &lt;a href="http://postgis.refractions.net/documentation/manual-svn/ch02.html#PGInstall"&gt;install instructions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After installing, you should find the usual &lt;code&gt;postgis.sql&lt;/code&gt; file which contains the old geometry and now the new geography features too. Install PostGIS and spatial reference information as usual:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;createdb mydb&lt;br /&gt;psql -d mydb -f postgis.sql&lt;br /&gt;psql -d mydb -f spatial_ref_sys.sql&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I find it useful for testing to load a shape file in the usual way, then add a geography column to it.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;shp2pgsql -s 26910 -g geom taxlots.shp taxlots | psql mydb&lt;br /&gt;psql mydb&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Once you have a table to play with, it's time to add a geography column, and build indexes. You have to transform the geometry into EPSG:4326 before casting to geography. When you build the index on the geography column, it builds a special index over the sphere which respects the poles and dateline.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;alter table taxlots add column geog geography;&lt;br /&gt;update taxlots set geog = geography(st_transform(tgeom,4326));&lt;br /&gt;create index roads_geom_idx on taxlots using gist (geom);&lt;br /&gt;create index roads_geog_idx on taxlots using gist (geog);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;How does this magic index work? The "trick" is to be as lazy as possible. I didn't want to write a whole new indexing scheme, and I already had a serviceable R-Tree index. What I needed to do was convert the lat/lon coordinates to a domain where the problems of the singularities at the poles and dateline would go away. The answer is to convert from spherical coordinates (lat/lon) relative to Greenwich into geocentric coordinates (x/y/z) relative to the center of earth. It's  easy then to build a 3D R-Tree on the geocentric bounds of the features. Calculating the bounds in 3D is tricky, because the curvature of the features over the spherical surface must be respected, but once that is done, the index performs admirably.&lt;br /&gt;&lt;br /&gt;Now you can compare properties calculated on the plane and on the spheroid.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;select st_area(geom) as geomarea, st_area(geog) as geogarea from taxlots limit 10;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that the units returned by the geography functions are metric. Square meters for area and linear meters for distances and lengths.&lt;br /&gt;&lt;br /&gt;How about a quick spatial self-join, to test the indexes?&lt;br /&gt;&lt;br /&gt;&lt;code&gt;\timing&lt;br /&gt;-- geography test&lt;br /&gt;select sum(st_area(geog)) from taxlots a, taxlots b where st_dwithin(a.geog, b.geog, 100.0) and b.gid = 1;&lt;br /&gt;-- geometry test&lt;br /&gt;select sum(st_area(geom)) from taxlots a, taxlots b where st_dwithin(a.geom, b.geom, 100.0) and b.gid = 1;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In testing, I have been finding the geography index slightly faster than the geometry index, which is perhaps because I was able to write the geography index binding from scratch, trying to apply the lessons I have taken from reviewing the existing geometry index. In PostGIS 1.5 (coming Christmastime or sooner) the geography and geometry types will coexist, but use different disk serializations and index bindings. In PostGIS 2.0 (fall 2010) the geometry will also be swapped over to a new serialization and index binding and should become as fast (faster) than the geography index.&lt;br /&gt;&lt;br /&gt;Finally, try out the transparent integration of the ST_Buffer() function from geometry with the geography type.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;select st_area(st_buffer(geog, 2.0)) from taxlots limit 1;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;By carefully transforming geometries out to appropriate planar spatial reference systems, you can use the functions built for geometry to provide operations on geographies. The definition for &lt;code&gt;ST_Buffer(geography, double)&lt;/code&gt; looks like this:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;CREATE OR REPLACE FUNCTION ST_Buffer(geography, float8)&lt;br /&gt;        RETURNS geography&lt;br /&gt;        AS 'SELECT geography(ST_Transform(ST_Buffer(ST_Transform(geometry($1), _ST_BestSRID($1)), $2), 4326))'&lt;br /&gt;        LANGUAGE 'SQL' IMMUTABLE STRICT;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that ST_Transform() appears twice, once to transform from geographics to a planar system and again to transform back after the buffer operation is complete. Also note the _ST_BestSRID() function, which analyzes the geography and provides a best guess planar system suitable for carrying out the operation. Right now the system picks an appropriate UTM zone, or a polar stereographic, or falls back to a mercator if there is no good choice.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgements:&lt;/b&gt; Of course, top billing goes to the funder, who has chosen to remain anonymous. Also, it would have been impossible for me to build the ST_Area() or ST_Distance() functions on the sphere and spheroid without the contributions of David Skea (if you check the PostGIS source code, you'll find he has contributed mathematical magic in the past also). And finally, &lt;a href="http://www.paragoncorporation.com/team.aspx"&gt;Regina Obe&lt;/a&gt; who has been testing and documenting my work as it is committed, resulting in very effective on-the-spot debugging and fixing of issues as they occur. Thanks everyone!&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-1134055540627336333?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/1134055540627336333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=1134055540627336333' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1134055540627336333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/1134055540627336333'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/11/postgis-gets-spherical-directors-cut.html' title='PostGIS gets Spherical (Directors Cut)'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4032825121335347992</id><published>2009-10-29T09:25:00.000-07:00</published><updated>2009-10-29T09:31:17.319-07:00</updated><title type='text'>Googalytics</title><content type='html'>If you haven't read Paul Bissett's take on the Goog's entrance into the data collection and LBS businesses, you must, he's nailing it. Start with "&lt;a href="http://blogs.weogeo.com/pbissett/2009/10/14/goog-borg-and-i-mean-that-in-the-nicest-way/"&gt;GOOG = BORG, and I Mean That in the Nicest Way&lt;/a&gt;", and then do "&lt;a href="http://blogs.weogeo.com/pbissett/2009/10/29/google-will-open-source-national-parcel-map/"&gt;Google Will Open Source National Parcel Map&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;&lt;img src="http://static.arstechnica.com/google_microscope.jpg"&gt;&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4032825121335347992?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4032825121335347992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4032825121335347992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4032825121335347992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4032825121335347992'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/10/googalytics.html' title='Googalytics'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-3820959170519525874</id><published>2009-10-25T15:37:00.001-07:00</published><updated>2009-10-25T15:53:48.253-07:00</updated><title type='text'>Climate @ FOSS4G 2009</title><content type='html'>I found the &lt;a href="http://2009.foss4g.org/speakers/#Andy_Pitman"&gt;keynote&lt;/a&gt; by climate scientist &lt;a href="http://www.science.unsw.edu.au/apitman-profile"&gt;Andy Pitman&lt;/a&gt; at FOSS4G very interesting, on a couple levels.&lt;br /&gt;&lt;br /&gt;Firstly on the climate level, he started off with a graph of some of the predictions from 1990, when it was becoming clear that climate change was something that policy makers needed to Do Something About. At that time, the scientists put together a range of scenarios, places we would be based on different policy responses, ranging from radical changes in energy production and efficiency to doing SFA. And amazingly, we have managed to do worse than the worst-case scenario envisioned in 1990. With the polar ice on the way out, and glacial (hah hah) progress in getting policy change China and the USA (the only two that matter, if they lead the world will follow), it was very sobering to see just how poorly we are doing at averting the very &lt;a href="http://mondaymag.com/articles/entry/losing-control/"&gt;predictable end&lt;/a&gt; of our civilization.&lt;br /&gt;&lt;br /&gt;Secondly on the open source level, he was very clear that open source technology (C, Java, etc) and open source programmers (knowing nothing about climate science) probably couldn't be directly useful to the modelling effort. But he did think that the modellers should aspire to a more open source ethic in their science. Most of the models are closed source, and there is little of the open source ethic of communications going on. My main concern about an open source climate model is that the politicization of the whole discussion would destroy any efforts at community building. One of the things projects have to occasionally deal with is "&lt;a href="http://video.google.com/videoplay?docid=-4216011961522818645"&gt;poisonous people&lt;/a&gt;", and an open climate model would have to deal with orders of magnitude more of those. It's draining and distracting from the real business at hand.&lt;br /&gt;&lt;br /&gt;I hope the climate modellers can figure out how to square the circle of more openness without poisonous people, but in my mind modelling is icing on the cake at this point. We know we need to de-carbonize, it's obvious that changing the chemical balance of our environment, whether locally with things like PCBs or DDT or globally with CO2 is a dangerous crapshoot. At this point, we need the force of will to do it.&lt;br /&gt;&lt;br /&gt;(BTW, I think we should be taxing carbon at the source, not taxing emissions (too many tailpipes) but extraction. It's not carbon per se that is the problem, it's &lt;b&gt;extra&lt;/b&gt; carbon, the kind we dig and pump out of the ground, that is baking us. Fewer points of taxation and control, easier to enforce and manage, let's tax oil and coal and natural gas at the point of production (or, if exporting jurisdictions refuse to do so, at our borders.)&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-3820959170519525874?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/3820959170519525874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=3820959170519525874' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3820959170519525874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/3820959170519525874'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/10/climate-foss4g-2009.html' title='Climate @ FOSS4G 2009'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4909774966561714479</id><published>2009-10-22T20:33:00.001-07:00</published><updated>2009-10-22T20:35:24.832-07:00</updated><title type='text'>FOSS4G 2009 Keynote</title><content type='html'>Lots of people here have been asking if my keynote is going to be posted online. So, &lt;a href="http://s3.cleverelephant.ca/foss4g2009-keynote.pdf"&gt;here it is&lt;/a&gt; (31MB). Be forewarned, it's a big file. There is also a &lt;a href="http://www.youtube.com/watch?v=zB_a28vBtBk"&gt;handheld video&lt;/a&gt; available on YouTube. There was a professional video shot too, and hopefully that will go online at the &lt;a href="http://2009.foss4g.org/"&gt;conference site&lt;/a&gt; in the next month or so.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4909774966561714479?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4909774966561714479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4909774966561714479' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4909774966561714479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4909774966561714479'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/10/foss4g-2009-keynote.html' title='FOSS4G 2009 Keynote'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14903426.post-4562482006898314071</id><published>2009-10-12T13:55:00.000-07:00</published><updated>2009-10-12T14:04:40.639-07:00</updated><title type='text'>Slashdot Explains Sexism in Open Source</title><content type='html'>In the spirit of beer commercials and sports highlight shows, Slashdot's editors blithely follow a post about sexism in open source with, just 45 minutes later, a post on a Marge Simpson spread in Playboy.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/92995391@N00/4005558977/" title="Slashdot Effect by pwramsey3, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2526/4005558977_4220fea3a0.jpg" width="298" height="500" alt="Slashdot Effect" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let no one say Slashdot does not know its audience. At least, the audience they have, not the one they're missing out on.&lt;br/&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/14903426-4562482006898314071?l=blog.cleverelephant.ca' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.cleverelephant.ca/feeds/4562482006898314071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=14903426&amp;postID=4562482006898314071' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4562482006898314071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14903426/posts/default/4562482006898314071'/><link rel='alternate' type='text/html' href='http://blog.cleverelephant.ca/2009/10/slashdot-explains-sexism-in-open-source.html' title='Slashdot Explains Sexism in Open Source'/><author><name>Paul Ramsey</name><uri>http://www.blogger.com/profile/04056244920940087995</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_K4wAvowKp68/S1JcAG3z_EI/AAAAAAAAADc/WNKTiYYExhA/S220/IMG_9424_2.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2526/4005558977_4220fea3a0_t.jpg' height='72' width='72'/><thr:total>3</thr:total></entry></feed>
