<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Quoderat</title>
	<atom:link href="http://megginson.com/blogs/quoderat/feed/rss2" rel="self" type="application/rss+xml" />
	<link>http://www.megginson.com/blogs/quoderat</link>
	<description>what was</description>
	<pubDate>Mon, 05 Jan 2009 23:16:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Back Monday for tech workers (??)</title>
		<link>http://www.megginson.com/blogs/quoderat/2009/01/05/back-monday-for-tech-workers/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2009/01/05/back-monday-for-tech-workers/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 23:16:53 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[business]]></category>

		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=233</guid>
		<description><![CDATA[I&#8217;m hearing rumours of small-scale layoffs from a few different places around Ottawa, mostly small-to-medium-sized companies.  
Just a single layoff affects dozens of people: 

the person who&#8217;s let go
the person&#8217;s family
the managers who have to do the firing
the person&#8217;s work friends, who&#8217;ll miss the lunchtime chats and drinks after work
the person&#8217;s coworkers, who&#8217;ll have [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m hearing rumours of small-scale layoffs from a few different places around Ottawa, mostly small-to-medium-sized companies.  </p>
<p>Just a single layoff affects dozens of people: </p>
<ul>
<li>the person who&#8217;s let go</li>
<li>the person&#8217;s family</li>
<li>the managers who have to do the firing</li>
<li>the person&#8217;s work friends, who&#8217;ll miss the lunchtime chats and drinks after work</li>
<li>the person&#8217;s coworkers, who&#8217;ll have to pick up the extra load</li>
<li>people from other organizations or members of the public who had dealings with the person</li>
<li>the restaurant owner across the street, who always had a special curry set aside for his favorite customer</li>
<li>(and so on)</li>
</ul>
<p>When the slowdown became inescapable in November, many companies may have decided to postpone layoffs until after the Christmas holidays, out of kindness.  The holidays are over now, and today (January 5) is the first day everyone will be back at work, so there could be a lot of postponed pain hitting all at once.</p>
<p>Are these just a few isolated incidents, or will today be the day that the economic slowdown starts to seem real to people in the tech industry?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2009/01/05/back-monday-for-tech-workers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why stimulus attempts fail</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/12/18/why-stimulus-attempts-fail/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/12/18/why-stimulus-attempts-fail/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 22:06:17 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[business]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=231</guid>
		<description><![CDATA[When a government spends money, a few things happen:

it competes with the private sector for money, driving up inflation (or interest rates)
it competes with the private sector for products and services, driving up costs
it competes with the private sector for land, driving up property prices
it competes with the private sector for workers, driving up salaries

During [...]]]></description>
			<content:encoded><![CDATA[<p>When a government spends money, a few things happen:</p>
<ol>
<li>it competes with the private sector for money, driving up inflation (or interest rates)</li>
<li>it competes with the private sector for products and services, driving up costs</li>
<li>it competes with the private sector for land, driving up property prices</li>
<li>it competes with the private sector for workers, driving up salaries</li>
</ol>
<p>During a boom, these are all bad things &mdash; when inflation, costs, and salaries are already too high, government spending just pumps more air into the bubble, leading to an even bigger bust later on (as we&#8217;re seeing this time around).</p>
<p>During a bust, it&#8217;s a different story.  With the spectre of deflation and negative interest rates, more competition for money is a good thing.  With companies laying off workers and struggling to stay afloat, more competition for products and services is a good thing.  With a collapsing property market, more competition for land is a good thing.  And with a huge pool of un- or under-employed workers, more competition for labour is a good thing.</p>
<p>So with so much potential good, why are stimulus packages usually a bad thing?</p>
<h3>It&#8217;s all in the timing</h3>
<p>Spending enough money to actually stimulate the economy out of a recession takes a lot of time.  Sure, governments can spend some fixing existing roads and bridges, repairing sewers, etc., but that&#8217;s chickenfeed.  To spend serious money and put people back to work, they need to do big stuff like new high-speed rail lines or highways, convention centres, etc.</p>
<p>Now, stop and think for a second.</p>
<p>Let&#8217;s say that you have access to $20B, right now, to build a high-speed rail line down the U.S. West Coast from Seattle to San Diego.  When can you spend it?</p>
<p>First, you need to have public hearings.</p>
<p>Then you need to plan the line.</p>
<p>Then you need to negotiate with all the governments along the way.</p>
<p>Then you need an environmental assessment.</p>
<p>Then you need to put the work out for tender.</p>
<p>Then you need to expropriate some land, and deal with the court challenges from people losing their homes, parks, etc.</p>
<p>Then, 10-20 years later, you can start construction.</p>
<p>Granted, that&#8217;s an extreme case, but even something as simple as a new convention centre takes several years from first planning to the start of construction, with design, approval, tender, environmental assessment, etc.</p>
<h3>Inflating the next bubble</h3>
<p>And there&#8217;s the problem.  Maybe we&#8217;ll still be in a bust in several years, but maybe .. just maybe .. we&#8217;ll be in the middle of a world-wide boom.</p>
<p>Then all the money that governments are committing now will go not to pull countries out of the current recession, but to inflate another bubble that could make the next recession even worse.</p>
<p>Are there any options?  We could try to plan stimulus packages during the boom, not during the bust, so that they&#8217;re ready to go when we actually need them.  The problem is, how do you predict a bust 5-10 years in advance?  Are contractors and workers willing to wait an uncertain number of years to start work until the next recession is declared?</p>
<p>That is why stimulus attempts mostly fail.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/12/18/why-stimulus-attempts-fail/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Good choice (I think)</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/12/12/good-choice-i-think/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/12/12/good-choice-i-think/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 13:38:51 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[business]]></category>

		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=230</guid>
		<description><![CDATA[The U.S. Senate made the right choice rejecting the auto industry bailout.  
This isn&#8217;t about class warfare: it doesn&#8217;t bother me that the CEOs took their bizjets from Detroit to Washington (CEOs take private jets so that they have more time to work on running their companies, not to show off), and many of [...]]]></description>
			<content:encoded><![CDATA[<p>The U.S. Senate made the right choice rejecting the auto industry bailout.  </p>
<p><strong>This isn&#8217;t about class warfare:</strong> it doesn&#8217;t bother me that the CEOs took their bizjets from Detroit to Washington (CEOs take private jets so that they have more time to work on running their companies, not to show off), and many of the shareholders who stand to lose are private citizens&#8217; 401Ks and pension funds, not rich industrialists.</p>
<p><strong>This isn&#8217;t about environmental concerns:</strong> companies will make electric cars as soon as they think they can profit from them (would you buy an electric car as your principal car now, when you have to stop every 2-3 hours and plug it in overnight, the batteries are an environment catastrophe waiting to happen, and a lot of the electricity in the U.S. is generated from dirty coal?).</p>
<p><strong>This isn&#8217;t about free-market purism:</strong> sometimes even healthy private organisations do need a little bridge financing to get through hard times, and in rare cases the government has to be the financier of last resort.</p>
<p><strong>This <em>is</em> about not prolonging the agony:</strong> the existing three major North American car companies are obviously doomed, and all a little more money will do is delay the bankruptcies, mergers, and restructuring that might actually create a vibrant, healthy North American auto industry (maybe just one company instead of three).  </p>
<h3>No money pit</h3>
<p>A bailout would also be a commitment to a money pit &mdash; after spending <del>$25B</del><ins>$14B</ins> now, would the U.S. government be able to say &#8216;no&#8217; to more in three months, when the industry burned through the first handout?  What about another three months after that?  </p>
<p>These aren&#8217;t healthy companies going through a rough spot &mdash; they were dying slowly even during the boom, when the world auto industry was <strong>way</strong> over capacity for demand, and Detroit was losing hundreds or thousands of dollars on every car they sold.  GM <a href="http://www.businessweek.com/lifestyle/content/nov2008/bw2008117_534334.htm">burned through</a> USD 4.2B cash in 2008Q3 alone, and that was mostly <em>before</em> the market meltdown.</p>
<h3>Palliative care</h3>
<p>The U.S. auto industry won&#8217;t disappear, but it has to change, and that change is going to be painful for the workers, their families, and their communities.  It&#8217;s good that the U.S. government has decided not to make a pointless intervention leading to false hope and prolonged agony; now, though, it&#8217;s time to think about palliative care for the industry, while the workers grieve and then move on with their lives.  Can the government help?  How?  <del>$25B</del><ins>$14B</ins> to help communities would be a lot more useful than $25B into GM&#8217;s, Ford&#8217;s, and Chrysler&#8217;s petty cash boxes.  But how to spend it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/12/12/good-choice-i-think/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What&#8217;s happening in Canada?</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/12/01/whats-happening-in-canada/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/12/01/whats-happening-in-canada/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 22:22:20 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=229</guid>
		<description><![CDATA[Canada just had an election six weeks ago, but we might have a new Prime Minister and cabinet from a different party in a week or so, without holding another election.  What gives?
Background
If you don&#8217;t live in a country like Britain, or Australia, that uses the Westminster System, what&#8217;s happening in Canada right now [...]]]></description>
			<content:encoded><![CDATA[<p>Canada just had an election six weeks ago, but we might have a new Prime Minister and cabinet from a different party in a week or so, without holding another election.  What gives?</p>
<h3>Background</h3>
<p>If you don&#8217;t live in a country like Britain, or Australia, that uses the <a href="http://en.wikipedia.org/wiki/Westminster_system">Westminster System</a>, what&#8217;s happening in Canada right now &mdash; to the extent that you&#8217;re paying attention at all &mdash; must seem very strange.  For our American cousins, here&#8217;s how our system lines up with yours:</p>
<table border="border">
<col width="50%"/></p>
<thead>
<tr>
<th>U.S.</th>
<th>Canada</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>President</strong> (directly elected)</td>
<td>Sovereign, represented by the Governor General (appointed and purely ceremonial)</td>
<tr>
<td>Senate (directly elected)</td>
<td>Senate (appointed and mostly ceremonial)</td>
</tr>
<tr>
<td>House of Representatives (directly elected)</td>
<td>House of Commons (directly elected)</td>
</tr>
<tr>
<td>House Majority Leader (indirectly elected)</td>
<td><strong>Prime Minister</strong> (indirectly elected)</td>
</tr>
</tbody>
</table>
<h3>A question of confidence</h3>
<p>Since only our House of Commons &mdash; equivalent to the U.S. House of Representatives &mdash; is actually elected, it holds all the real power, and the leader of the ruling faction in the House &mdash; the Prime Minister &mdash; is the effective (but not constitutional) head of state and can appoint the other cabinet ministers (just like the party with a majority in the U.S. House can appoint the committee chairs).</p>
<p>The Prime Minister holds power, however, only to the extent that he or she can keep the <a href="http://en.wikipedia.org/wiki/Responsible_government">confidence</a> of the House of Commons.  Any party leader can go to the <a href="http://en.wikipedia.org/wiki/Governor_General_of_Canada">Governor General</a> and offer to form a government, but by tradition, the G-G will always give the first chance to the leader of the party that won the most seats.  If that party has a <em>majority</em> of seats in the House, then forming a government will be a no-brainer (assuming that the leader can maintain <a href="http://en.wikipedia.org/wiki/Whip_(politics)">party discipline</a>); if the party has only a <em>plurality</em> of seats, then it has to prove that it can control the house and pass its major legislation; if not, then the G-G can offer a different party leader a chance to form a government.</p>
<h3>Only MPs are elected</h3>
<p>Although this might sound bizarre to people used to the American system, there&#8217;s nothing inherently undemocratic about it.  Canadians elected 308 Members of Parliament (MPs) earlier this fall; we did <em>not</em> vote directly for a specific Prime Minister or a specific party.  The <a href="http://en.wikipedia.org/wiki/Conservative_Party_of_Canada">Conservative Party</a> won a plurality of the seats, but not a majority: that doesn&#8217;t guarantee them the government, only the first turn to try to form one.  The Conservatives are about to bring their first major piece of financial legislation before the House, and if it is defeated, the G-G is required to conclude that the Conservative government does not have the confidence of a majority of the 308 MPs we elected, and (since the last election was so recent) to give another party leader a try if one can make a credible case.</p>
<h3>Hubris</h3>
<p>Last time around, the Conservatives had no problem governing with a minority government &mdash; they just made sure that at least one of the other parties would support each piece of legislation they brought forward, and the opposition parties &mdash; especially the <a href="http://en.wikipedia.org/wiki/Liberal_Party_of_Canada">Liberals</a> &mdash; were too timid to force an election by defeating them.  This time, though, the Conservatives foolishly pushed the opposition parties just a little too far, by trying to cut government funding for political parties.  This would hurt the opposition much more than the Conservatives (who are better at fund-raising), and whether the move was morally right or wrong, it was politically ignorant. </p>
<p>Suddenly, two of the opposition parties &mdash; the Liberals and the <a href="http://en.wikipedia.org/wiki/New_Democratic_Party">New Democratic Party</a> (NDP) &mdash; woke up out of their daze and realized that they could vote with the <a href="http://en.wikipedia.org/wiki/Bloc_Qu%C3%A9b%C3%A9cois">Bloc Québécois</a> to defeat the Conservatives, then join together to form their own government.  The Conservatives immediately panicked and withdrew the anti-funding proposal, but the genie was out of the bottle &mdash; the Conservatives&#8217; only remaining hope is to try to appease the Bloc enough to keep their support.</p>
<h3>Food for Junkies</h3>
<p>So if you&#8217;re a political junkie who&#8217;s still in a slump after the end of the U.S. election, stay tuned &mdash; even Canadian politics can be exciting sometimes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/12/01/whats-happening-in-canada/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Banking: blame and beliefs</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/10/14/banking-blame-and-beliefs/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/10/14/banking-blame-and-beliefs/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 23:40:22 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=228</guid>
		<description><![CDATA[The world banking meltdown is a lot like the Christian Bible: no matter what your personal beliefs, you can find something there, somewhere, to back them up.
Too little regulation?  Lenders were able to use credit derivatives (such as collateralized debt obligations) to keep loans off their books, without any reliable way of assessing their [...]]]></description>
			<content:encoded><![CDATA[<p>The world banking meltdown is a lot like the Christian Bible: no matter what your personal beliefs, you can find something there, somewhere, to back them up.</p>
<p><strong>Too little regulation?</strong>  Lenders were able to use credit derivatives (such as collateralized debt obligations) to keep loans off their books, without any reliable way of assessing their risk (and thus, their actual value).</p>
<p><strong>Too much regulation?</strong>  Basel II (the regulatory response to previous banking crises) forced banks to reassess their reserves daily at market value &mdash; if the market started to fall, banks had to convert stocks to cash quickly to avoid falling below minimum reserve levels, massively magnifying even small stock market movements and encouraging banks to use credit derivatives to keep loans off their books.</p>
<p><strong>Sinners?</strong>  People (especially in the U.S.) went out and bought homes that they could never afford to pay for, on the assumption that home values would keep rising, then kept taking out more money against their mortgages to finance regular consumer spending.</p>
<p><strong>Victims?</strong>  Some of the financial instruments available to borrowers in the U.S., like negative amortization mortgages (pay less than the interest for the first few years), were deliberately designed to sucker in buyers who hadn&#8217;t quite mastered grade 5 math.</p>
<p><strong>Too much government?</strong> By taking over bad loans from the banks, governments around the world have sent out the message that banks get to gain in the good times, but will be spared the pain in bad.  Do they have any more incentive to be careful the next time around?  Besides, all the government borrowing, especially in the U.S., has hardly helped the situation.</p>
<p><strong>Too little government?</strong>  Central banks could have stopped the housing bubble in its tracks by raising the prime interest rate (say, to 5 or 6% in the U.S.).  Year after year, they passed on the opportunity, keeping interest rates low to keep the stock markets artificially high, and pumping more air in the housing bubble, leading to a bigger explosion this year than we really needed.</p>
<p>So, whether you&#8217;re a political candidate or just a Starbucks pundit, pick the statements above that best support what you already believe, and run with them.  No matter what, you&#8217;ll probably be right.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/10/14/banking-blame-and-beliefs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>sorry.google.com</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/10/01/sorrygooglecom/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/10/01/sorrygooglecom/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 12:50:55 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=225</guid>
		<description><![CDATA[
See the update below.  I was right: Google&#8217;s new bot detection is overly naive, and I&#8217;m not the only one having problems.
See also John Cowan&#8217;s comment below, for a different (personal) interpretation of Google&#8217;s terms of service.

Google Maps won&#8217;t show me satellite imagery this morning.
Google has recently set up a system to try to [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
<em>See the update below.  I was right: Google&#8217;s new bot detection is overly naive, and I&#8217;m not the only one having problems.</em></p>
<p><em>See also John Cowan&#8217;s comment below, for a different (personal) interpretation of Google&#8217;s terms of service.</em>
</p></blockquote>
<p>Google Maps won&#8217;t show me satellite imagery this morning.</p>
<p>Google has recently set up a system to try to autodetect and block bots scraping their system, and <a href="http://groups.google.com/group/Google_Web_Search_Help-Troubleshooting/browse_frm/thread/2ec0b8abccca19e4">it isn&#8217;t working very well</a> &mdash; people are getting blocked even from Google Search simply because they have too many (human-generated) queries passing through the same proxy.</p>
<p>This morning, I suddenly discovered a different problem: the satellite view in Google Maps has stopped working for me &mdash; I get the &#8220;don&#8217;t have imagery at this zoom level for this region&#8221; error everywhere, at every zoom level.  I can still see maps and terrain, but not satellite pics, and I noticed the host <code>sorry.google.com</code> setting a lot of cookies.</p>
<p>Is Google&#8217;s satellite imagery down for everyone else this morning, or has their software decided that I&#8217;m a bot trying to scrape satellite imagery?</p>
<h2>Update</h2>
<p>I was right &mdash; Google&#8217;s software had decided that I was a bot.  They have a test link directly to a satellite to see if you&#8217;re being blocked:</p>
<p><a href="http://khm0.google.com/kh?v=31&#038;hl=en&#038;x=0&#038;y=0&#038;z=1&#038;s=">http://khm0.google.com/kh?v=31&#038;hl=en&#038;x=0&#038;y=0&#038;z=1&#038;s=</a></p>
<p>It took me to <a href="http://sorry.google.com/sorry/?continue=http://khm0.google.com/kh%3Fv%3D31%26hl%3Den%26x%3D0%26y%3D0%26z%3D1%26s%3D">this page</a>.  I was able to renable access simply by entering a CAPTCHA.</p>
<h3>What happened?</h3>
<p>I wrote a couple of months ago about <a href="http://www.megginson.com/blogs/quoderat/2008/07/27/detecting-overzoom-in-google-maps/">how to detect overzoom in Google Maps</a>.  My guess is that the overzoom protection in <a href="http://www.ourairports.com/">OurAirports</a> &mdash; automatically zooming out every 4 seconds until there were actual satellite tiles available &mdash; triggered to bot alert, and I&#8217;ve disabled the feature for now.</p>
<p>That&#8217;s very bad news for any mashup that uses JavaScript to do more sophisticated things with Google Maps, like, say, panning at regular intervals.  Google&#8217;s bot detection seems to be extremely naive, and any repeated action at regular intervals will fire it off.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/10/01/sorrygooglecom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Taking sides</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/09/23/taking-sides/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/09/23/taking-sides/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 20:48:09 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=224</guid>
		<description><![CDATA[
I don&#8217;t believe that anything &#8212; especially a political argument &#8212; can be self-evidently true: people get together in groups and construct their realities, whatever those may be.  In my reality, however, there are some arguments that just don&#8217;t go well together, and I have a lot of trouble respecting any commentator, politician, or [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/img/sitting-on-the-fence.jpg" alt="" align="right" /></p>
<p>I don&#8217;t believe that <em>anything</em> &mdash; especially a political argument &mdash; can be self-evidently true: people get together in groups and construct their realities, whatever those may be.  In my reality, however, there are some arguments that just don&#8217;t go well together, and I have a lot of trouble respecting any commentator, politician, or even dinner-table pundit who supports <em>both</em> statements in any of the following pairs.</p>
<div id="age">
<h2>Age</h2>
<ol>
<li>A 16-year-old is too young to vote.</li>
<li>A 16-year-old is old enough to be tried for a crime as an adult.</li>
</ol>
<p>This is a variation of the &#8220;no taxation without representation&#8221; idea that helped drive the American Revolution.  Any person who is considered legally capable of making an informed decision as an adult should have a share in choosing his/her government.  If a 16-year-old is capable of forming a plan to steal/murder etc. as an adult, then a 16-year-old is capable of voting as an adult.  There is no excuse for the voting age to be different from the age of full criminal responsibility.</p>
<p>There are lots of variations: for example, an 18-year-old is too young to drink in most of the U.S., but plenty old enough to have his finger on the trigger of major ordnance in a war.  The age of sexual consent also comes into play here.  This is one that right-ish political parties, like the Canadian Conservatives or the U.S. Republicans, usually flunk.</p>
<p><!-- age -->
</div>
<div id="environment">
<h2>Environment</h2>
<ol>
<li>The government should do something to lower gas prices.</li>
<li>The government should do something to lower carbon emissions.</li>
</ol>
<p>So far, high energy prices are the <em>only</em> thing that seems to cut carbon emissions.  If you don&#8217;t believe that carbon emissions are accelerating global warming or that global warming is a serious threat, then go ahead and push for lower gas prices; if you do believe that global warming is a serious threat, then you should be cheering for $20/gallon gas.  Most North American politicians &mdash; especially those in left-ish parties (like the Canadian NDP) &mdash; flunk this test cold.</p>
<p><!-- environment -->
</div>
<div id="military">
<h2>Military intervention</h2>
<ol>
<li>Rich countries should never send in their armies to invade poor ones.</li>
<li>Rich countries have an obligation to ensure that there&#8217;s never another Rwandan massacre.</li>
</ol>
<p>This is a tough one for me, because I believe that the rich world has botched nearly every military intervention it&#8217;s made in the poor and developing worlds over the last 200 years (Bosnia stands as one of the partial exceptions).  Isolationism is a perfectly consistent political view, but for the rest of us, if we do ask our governments to protect people in poorer countries from their own governments, we are implicitly asking them to go in shooting if economic sanctions and strong words on the floor of the U.N. Assembly don&#8217;t do the trick.  The rich world could probably could have stopped the Rwandan massacre, for example, but there&#8217;s a good chance rich-world troops would still be stuck as unwelcome guests in central Africa today, as they are in Iraq and (to a large extent) Afghanistan.</p>
<p>This is another one that politicians from left-ish parties usually flunk.</p>
<p><!-- military -->
</div>
<div id="freedom">
<h2>Freedom</h2>
<ol>
<li>Freedom is what makes Democracies [sic] better than other forms of government.</li>
<li>When Democracy is under threat, security is more important than people&#8217;s rights.</li>
</ol>
<p>No explanation required.  This is another one that politicians from right-ish parties usually flunk.</p>
<p><!-- freedom -->
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/09/23/taking-sides/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XML-in-Practice 2008: call for participation</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/08/26/xml-in-practice-2008-call-for-participation/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/08/26/xml-in-practice-2008-call-for-participation/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 14:40:37 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[xmlconference]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=223</guid>
		<description><![CDATA[The new name for IDEAlliance&#8217;s annual XML conference is XML-in-Practice (December 8&#8211;10, Arlington, VA), and it has just released its call for participation, with proposals due by 19 September and selected papers announced by 3 October.
I won&#8217;t be chairing the conference this year, but I&#8217;m looking forward to reading many of the submissions as a [...]]]></description>
			<content:encoded><![CDATA[<p>The new name for IDEAlliance&#8217;s annual XML conference is <cite><a href="http://www.idealliance.org/xml2008/">XML-in-Practice</a></cite> (December 8&ndash;10, Arlington, VA), and it has just released its <a href="http://www.idealliance.org/xml2008/participation.asp">call for participation</a>, with proposals due by 19 September and selected papers announced by 3 October.</p>
<p>I won&#8217;t be chairing the conference this year, but I&#8217;m looking forward to reading many of the submissions as a peer reviewer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/08/26/xml-in-practice-2008-call-for-participation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Detecting overzoom in Google Maps</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/07/27/detecting-overzoom-in-google-maps/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/07/27/detecting-overzoom-in-google-maps/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 21:14:45 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[javascript googlemaps ourairports]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=222</guid>
		<description><![CDATA[
[Warning: as of 1 October 2008, Google is using an over-simplistic bot detection algorithm, and something as simple as zooming out at regular intervals can trigger it and temporarily block access to Google resources.  I recommend waiting until they fix their algorithms to use this technique.]

Here&#8217;s a link to a web page showing how [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
<em>[Warning: as of 1 October 2008, Google is using an over-simplistic bot detection algorithm, and something as simple as zooming out at regular intervals can trigger it and temporarily block access to Google resources.  I recommend waiting until they fix their algorithms to use this technique.]</em>
</p></blockquote>
<p>Here&#8217;s a link to a web page showing how to <a href="http://esa.ilmari.googlepages.com/sorry.htm">detect overzoom</a> with the Google Maps API.  </p>
<p>Overzoom is a big issue for my site <a href="http://www.ourairports.com/">OurAirports</a>, which shows a close-up satellite view on each airport&#8217;s page (e.g. the former <a href="http://www.ourairports.com/airports/KCGX/">Meigs Field</a>).  Unfortunately, there&#8217;s no documented way to use the Google Maps API to check if a satellite view is overzoomed (instead of a satellite picture, it&#8217;s showing the &#8220;We are sorry, but we don&#8217;t have imagery at this zoom level for this region&#8230;&#8221; message).  That can be confusing for someone who isn&#8217;t a regular Google Maps user and hasn&#8217;t actually touched the zoom controls on the map.</p>
<div id="hack">
<h2>The hack</h2>
<p>The page above came up with the clever solution of counting paragraphs in the map container.  If there is a &#8220;sorry&#8221; message, there will be HTML <code>p</code> elements inside the map container.  Here&#8217;s a simple JavaScript function that checks to see if the map is overzoomed, and zooms out one level if it is:</p>
<pre>
function check_zoom (map)
{
    var zoom = map.getZoom();
    var count = map.getContainer().getElementsByTagName('p').length;

    if (zoom > 1 &#038;&#038; count > 0) {
        map.setZoom(zoom - 1);
    }
}
</pre>
<p>Note that it doesn&#8217;t iterate &mdash; it just does one check and exits.  The easiest way to use this is just to have it run every two seconds or so.  If your map is available in a variable named <var>map</var>, this will do the trick:</p>
<pre>
setInterval("check_zoom(map)", 2000);
</pre>
</div>
<div id="examples">
<h2>Examples</h2>
<p>To see how it works, check out <a href="http://www.ourairports.com/airports/EFVU/">Vuotso Airport</a> in Finland.  Google Maps doesn&#8217;t have very good satellite coverage for Lapland in the far north, but OurAirports now detects that after a couple of seconds and zooms out one step.  For a more extreme example, look at <a href="http://www.ourairports.com/airports/CYLT/">Alert Airport</a>, the world&#8217;s northernmost permanent airport, in Nunavut, Canada &mdash; the code has to zoom out several times until you can see anything in the satellite view.</p>
</div>
<div id="caveats">
<h2>Caveats</h2>
<p>The more elegant solution would be to detect when the map is finished loading after every event that can affect it, but that sounds like too much work to save a couple of milliseconds here and there.</p>
<p>Note that Google can break this at any time simply by adding or removing <var>p</var> elements &mdash; it would be much better to have an official, reliable way to detect when a satellite view is overzoomed.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/07/27/detecting-overzoom-in-google-maps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Widgets vs. Portlets</title>
		<link>http://www.megginson.com/blogs/quoderat/2008/07/14/widgets-vs-portlets/</link>
		<comments>http://www.megginson.com/blogs/quoderat/2008/07/14/widgets-vs-portlets/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 16:06:28 +0000</pubDate>
		<dc:creator>david</dc:creator>
		
		<category><![CDATA[architecture]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.megginson.com/blogs/quoderat/?p=221</guid>
		<description><![CDATA[Widgets are web pages embedded in larger web pages, generally using iFrames &#8212; the content comes via a separate HTTP connection and has its own CSS stylesheet, cookies, etc.  Final composition takes place in the user&#8217;s browser.
Portlets are software modules that produce fragments of HTML markup that are assembled into a single HTML page, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Web_widget">Widgets</a> are web pages embedded in larger web pages, generally using <a href="http://en.wikipedia.org/wiki/IFrame">iFrames</a> &mdash; the content comes via a separate HTTP connection and has its own CSS stylesheet, cookies, etc.  Final composition takes place in the user&#8217;s browser.</p>
<p><a href="http://en.wikipedia.org/wiki/Portlets">Portlets</a> are software modules that produce fragments of HTML markup that are assembled into a single HTML page, sharing common CSS stylesheet, cookies, etc.  Final composition takes place on a portal server, and a single page is delivered to the client browser.</p>
<h2>Features</h2>
<p>Portlets have a lot of features that iFrames don&#8217;t: they require fewer HTTP connections, they allow for common styling (one CSS stylesheet can style all the portlets on a page), and they can communicate with each other and take advantage of common authentication/authorization, etc. (so that a user doesn&#8217;t have to sign on to each portlet separately).</p>
<p>Portlets use a window-manager metaphor, allowing the portlet server to resize them, expand them etc.  They also have modes, like edit and view, all of which can be accessed through a common interface.  All of this happens on the server side.</p>
<p>iFrame-based widgets don&#8217;t normally do any of that, but they don&#8217;t require special portal servers, they can be embedded in more creative ways, and they offload the processing from the server to the client.  They also introduce potential security holes, but only if they&#8217;re hosted somewhere that&#8217;s not under the original company&#8217;s control (the same applies to remote portlets using <a href="http://en.wikipedia.org/wiki/Web_Services_for_Remote_Portlets">WSRP</a>).</p>
<h2>Users</h2>
<p>Portlets are used mainly in intranets, to provide a collection of enterprise apps on a single web page for employees (e.g. a news feed, calendar, expense forms, bug reports, etc.).</p>
<p>Widgets are used everywhere else (e.g. embedding Google maps, Facebook applications, etc.).  While widget authors/consumers don&#8217;t tend to know (or care) much about portlets, the portlet people haven&#8217;t failed to notice the popularity of widgets &mdash; most (if not all) portal servers now have an <em>iFrame portlet</em> that does little more than wrap an iFrame and allow it to be resized, etc.</p>
<h2>Future?</h2>
<p>Are the extra features of portlets compelling enough to justify the extra cost and hassle of running a portlet server?  Now that we have browser tabs, AJAX, etc., do enterprises really need to continue to squish all their apps into a single web page that looks like a 1995 Mac desktop gone bad? </p>
<p>My guess is that the only portlet feature with compelling benefits is common authentication/authorization &mdash; once the web community gets behind a solution to that problem (<a href="http://en.wikipedia.org/wiki/OpenID">OpenID</a> or something similar), widgets will probably push portlets out completely, even in the enterprise.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.megginson.com/blogs/quoderat/2008/07/14/widgets-vs-portlets/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
