<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Parks Computing</title>
	<atom:link href="http://www.parkscomputing.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.parkscomputing.com</link>
	<description>Pedagogy for the autodidactic programmer</description>
	<lastBuildDate>Thu, 12 Jan 2012 22:48:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Facebook and Your Grandchildren</title>
		<link>http://www.parkscomputing.com/2012/01/facebook-and-your-grandchildren/</link>
		<comments>http://www.parkscomputing.com/2012/01/facebook-and-your-grandchildren/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 21:54:37 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=777</guid>
		<description><![CDATA[I think most people, at some point, have tried to keep a diary. Most people also gave up after a few days. Yet Facebook is like a diary that you&#8217;ll let your 900 closest friends read, and you have to try not to constantly write stuff on your page. That realization made me wonder what [...]]]></description>
			<content:encoded><![CDATA[<p>I think most people, at some point, have tried to keep a diary. Most people also gave up after a few days. Yet Facebook is like a diary that you&#8217;ll let your 900 closest friends read, and you have to try <i>not</i> to constantly write stuff on your page.</p>
<p>That realization made me wonder what it would be like if my grandparents had had Facebook pages in their teenage years. I would love to be able to read what they would have posted, or what videos and pictures they might have shared, if the technology had existed back then (in the case of my maternal grandfather, this would have been in from the 1880&#8242;s onward).</p>
<p><i>That</i> made me wonder what my grandchildren will think when they read my Facebook page. Now, whenever I update my status or post a photo album I think about the people that might read it years from now.</p>
<p>The next time you type &#8220;OMG GOT SO WASTED LAST NIGHT LOL,&#8221; do think about your grandchildren before you hit the &#8220;Post&#8221; button. Of course, if you were partying with your grandchildren when you got wasted, well&#8230; okay, party on, I guess.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2012%2F01%2Ffacebook-and-your-grandchildren%2F&amp;t=Facebook%20and%20Your%20Grandchildren" id="facebook_share_button_777" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_777') || document.getElementById('facebook_share_icon_777') || document.getElementById('facebook_share_both_777') || document.getElementById('facebook_share_button_777');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_777') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2012/01/facebook-and-your-grandchildren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bragging On the GWA Marching Bulldog Band</title>
		<link>http://www.parkscomputing.com/2011/11/bragging-on-the-gwa-marching-bulldog-band/</link>
		<comments>http://www.parkscomputing.com/2011/11/bragging-on-the-gwa-marching-bulldog-band/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 17:33:23 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[GWA]]></category>
		<category><![CDATA[band]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=721</guid>
		<description><![CDATA[My elder daughter, a senior at George Walton Academy in Monroe, GA, is a member of the color guard on the GWA Marching Bulldog Band. This past weekend the band competed in the USSBA Southern States Championships in Chattanooga, TN, where they placed first in the Group VI Open competition with a score of 98.563, [...]]]></description>
			<content:encoded><![CDATA[<p>My elder daughter, a senior at <a href="http://www.gwa.com/" target="_blank">George Walton Academy</a> in Monroe, GA, is a member of the color guard on the <a href="http://www.gwabands.org" target="_blank">GWA Marching Bulldog Band</a>. This past weekend the band competed in the <a href="http://www.yea.org/site/PageServer?pagename=USSBA" target="_blank">USSBA</a> Southern States Championships in Chattanooga, TN, where they placed first in the Group VI Open competition with a score of 98.563, the highest score of the competition among all bands in all classifications. This is an amazing band that performs at a high level year after year, and I&#8217;m so proud to have gotten to know the directors, students, parents, and many others that make this band what it is.</p>
<p>This year&#8217;s show theme was &#8220;The Carmen Project.&#8221; The show mixed music from the opera &#8220;Carmen&#8221; with other Latin themes such as Ravel&#8217;s &#8220;Boléro&#8221; while interpreting the story of the opera. It was a grand and moving spectacle that just got better and better every time I watched it. My daughter played the role of Carmen, which of course meant she got to die in dramatic fashion at the end of the show.</p>
<p>Here is my recording of the winning USSBA performance. The actual show starts at the 3:30 mark; before that, you can see the band marching onto the field and doing their warm-up routine.</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/umrM46mFSsM" frameborder="0" allowfullscreen></iframe></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F11%2Fbragging-on-the-gwa-marching-bulldog-band%2F&amp;t=Bragging%20On%20the%20GWA%20Marching%20Bulldog%20Band" id="facebook_share_button_721" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_721') || document.getElementById('facebook_share_icon_721') || document.getElementById('facebook_share_both_721') || document.getElementById('facebook_share_button_721');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_721') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/11/bragging-on-the-gwa-marching-bulldog-band/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>George Orwell and Effective Coding</title>
		<link>http://www.parkscomputing.com/2011/10/george-orwell-and-effective-coding/</link>
		<comments>http://www.parkscomputing.com/2011/10/george-orwell-and-effective-coding/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 01:40:39 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[analogies]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=715</guid>
		<description><![CDATA[I spend a lot of time and effort trying to get better at the craft of software development. My goal every day is to fall asleep as a better programmer than the one that awoke that morning. While this involves a lot of reading and practice within the field, I usually learn more by studying [...]]]></description>
			<content:encoded><![CDATA[<p>I spend a lot of time and effort trying to get better at the <a href="http://en.wikipedia.org/wiki/Master_craftsman" target="_blank">craft</a> of software development. My goal every day is to fall asleep as a better programmer than the one that awoke that morning. While this involves a lot of reading and practice within the field, I usually learn more by studying older disciplines since software development is still such a young craft.</p>
<p>Earlier today I read an <a href="http://www.mtholyoke.edu/acad/intrel/orwell46.htm" target="_blank">essay on the decline of the English language</a> by <a href="http://en.wikipedia.org/wiki/George_Orwell" target="_blank">George Orwell</a>. The essay is excellent, and I&#8217;m already trying to apply its lessons to my writing, but there was one passage that struck me as being particularly useful for software development.</p>
<blockquote><p>When you think of something abstract you are more inclined to use words from the start, and unless you make a conscious effort to prevent it, the existing dialect will come rushing in and do the job for you, at the expense of blurring or even changing your meaning. Probably it is better to put off using words as long as possible and get one&#8217;s meaning as clear as one can through pictures and sensations. Afterward one can choose &#8212; not simply accept &#8212; the phrases that will best cover the meaning, and then switch round and decide what impressions one&#8217;s words are likely to make on another person.</p></blockquote>
<p>To apply the quote above to software development, replace &#8220;words&#8221; with &#8220;code&#8221; and &#8220;dialect&#8221; with &#8220;programming language.&#8221; When you become accustomed to using a particular language or coding pattern, you tend to think of any new problem in those terms. If you choose the wrong strategy for solving the problem and start implementing too quickly you may end up with a solution that is too &#8220;wordy&#8221; or that does not express the abstractions accurately.</p>
<p>Earlier today, before I read the essay, I put this very lesson into practice without even realizing exactly why I like to do it. Whenever I come up with an idea for a new feature that I need to implement, or whenever I need to make a radical change to some system I&#8217;m working on, I&#8217;ll get up and walk away from the PC before the idea forms too fully and I start to write code. I&#8217;ll go for a walk or do some mindless activity (today it was sweeping the driveway) while I think about the idea. I&#8217;ll consider different implementations to see what problems might arise before I commit to a solution. Though I&#8217;ve never thought of it this way, it&#8217;s the same sort of process that Orwell describes in the quote above. Now that I&#8217;ve read Orwell&#8217;s precise definition of why this is good for writing prose, I better understand why it&#8217;s also effective for writing code.</p>
<p>Software development is hard. The job of a software developer is to turn an abstract idea into a concrete implementation in an efficient manner. Until you fully understand the abstractions, it&#8217;s impossible to consider any concrete implementation, let alone one that is efficient. I find that I write better code once I&#8217;ve thought enough about a problem to create a sort of landscape in my mind. It really is a landscape, too. It&#8217;s almost as if I can walk though the implementation in my mind and explore its darker corners. If I can find a way to build a mental model with fewer dark corners and dead-end hallways, then the concrete implementation will usually be more solid.</p>
<p>As you try to become a better developer, look for lessons from other fields like writing, architecture, the building trades, or any craft or profession that has been around for a long time. You&#8217;ll find that many problems that look like they&#8217;re peculiar to software development were actually considered and solved in other trades hundreds or even thousands of years ago.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F10%2Fgeorge-orwell-and-effective-coding%2F&amp;t=George%20Orwell%20and%20Effective%20Coding" id="facebook_share_button_715" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_715') || document.getElementById('facebook_share_icon_715') || document.getElementById('facebook_share_both_715') || document.getElementById('facebook_share_button_715');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_715') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/10/george-orwell-and-effective-coding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You Might Be an Old Hacker If&#8230;</title>
		<link>http://www.parkscomputing.com/2011/10/you-might-be-an-old-hacker-if/</link>
		<comments>http://www.parkscomputing.com/2011/10/you-might-be-an-old-hacker-if/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 19:47:53 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[nostalgia]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=701</guid>
		<description><![CDATA[It occurred to me recently that I&#8217;ve been using the Internet for almost 18 years now. That doesn&#8217;t put me into any particularly elite category since there were a lot of users way before I came along, but it does make me feel old to know that there are students in college now who were [...]]]></description>
			<content:encoded><![CDATA[<p>It occurred to me recently that I&#8217;ve been using the Internet for almost 18 years now. That doesn&#8217;t put me into any particularly elite category since there were a lot of users way before I came along, but it does make me feel old to know that there are students in college now who were born <i>after</i> I started using the Internet.</p>
<p>Are you an old hacker like me? You might be if you&#8230;</p>
<ul>
<li>&#8230;Remember when the word <a target="_blank" href="http://www.catb.org/jargon/html/H/hacker.html">&#8220;hacker&#8221;</a> just meant someone who tinkered with machinery or technology.</li>
<li>&#8230;Had an e-mail address that didn&#8217;t have to have numbers in it to make it unique.</li>
<li>&#8230;First accessed the Internet through a Unix shell.</li>
<li>&#8230;Ran your own SMTP server.</li>
<li>&#8230;Remember when the web was <b>not</b> the same as &#8220;the Internet.&#8221;</li>
<li>&#8230;Used <a target="_blank" href="http://en.wikipedia.org/wiki/Gopher_(protocol)">gopher</a>.</li>
<li>&#8230;<i>Still use</i> gopher.</li>
<li>&#8230;Were glad that your Netcom address didn&#8217;t have an &#8220;ix.&#8221; in it.</li>
<li>&#8230;Wrote your first web site with Notepad (or vi).</li>
<li>&#8230;Wrote your first web app with <a target="_blank" href="http://en.wikipedia.org/wiki/Common_Gateway_Interface">CGI</a>.</li>
<li>&#8230;Wrote your first &#8220;web app&#8221; before that term existed.</li>
<li>&#8230;Ever said to yourself, &#8220;Make money giving stuff away? That&#8217;s stupid.&#8221;</li>
<li>&#8230;Started an Internet business, decided it was a silly idea, and then watched someone become a billionaire with the <i>same idea</i>. (Hi, Craigslist.)</li>
<li>&#8230;Remember the first time you used <a target="_blank" href="ftp://ftp.ncsa.uiuc.edu/Mosaic/">NCSA Mosaic</a>.</li>
<li>&#8230;Kept waiting for Netscape 4.0 to just die, already.</li>
<li>&#8230;Wrote Java applets when applets were the hot new thing.</li>
<li>&#8230;Wrote an HTTP server from scratch.</li>
<li>&#8230;Wrote a DOS shareware utility.</li>
<li>&#8230;Have IRC logs older than most of your shirts.</li>
<li>&#8230;Ran an FTP server on your office PC as a nifty way to access your files from home&#8230; and nobody cared!</li>
<li>&#8230;Owned a .com domain name that began with a commonly used word.</li>
<li>&#8230;Ran Linux prior to version 1.0.</li>
<li>&#8230;Browsed a web site with telnet.</li>
<li>&#8230;Lost your job in the <a target="_blank" href="http://en.wikipedia.org/wiki/Dot-com_bubble">dot-bomb</a>.</li>
</ul>
<p>That last one is particularly poignant. For me, 2001 was when the Internet, and by extension the web, ceased being some kind of new frontier. Maturity of a technology isn&#8217;t measured by people making a lot of money off of it, but rather by people losing a lot of money off of it. It was kind of hard knowing that I was out-of-work in a town (Seattle) where a barista at Starbucks probably had a better technology résumé than I did&#8230; and a job!</p>
<p>Just last week I became the last geek in the world to get a real smartphone (BlackBerries don&#8217;t count). As I marvel at all that I&#8217;m able to do with a remarkably inexpensive piece of equipment that can fit in my pocket, for which I&#8217;ve only spent a grand total of $2.99 in third-party software, I&#8217;m really glad that I&#8217;m an old hacker who got to watch this amazing world grow up right in front of me. You young kids don&#8217;t know how easy you have it.</p>
<p>(I&#8217;m sure there are a lot of you out there that were hacking in and around the &#8216;net way before I was. Let&#8217;s hear those war stories!)</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F10%2Fyou-might-be-an-old-hacker-if%2F&amp;t=You%20Might%20Be%20an%20Old%20Hacker%20If..." id="facebook_share_button_701" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_701') || document.getElementById('facebook_share_icon_701') || document.getElementById('facebook_share_both_701') || document.getElementById('facebook_share_button_701');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_701') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/10/you-might-be-an-old-hacker-if/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comments on Accelerated C++ Solutions</title>
		<link>http://www.parkscomputing.com/2011/09/comments-on-accelerated-c-solutions/</link>
		<comments>http://www.parkscomputing.com/2011/09/comments-on-accelerated-c-solutions/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 17:30:39 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[Accelerated C++]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=697</guid>
		<description><![CDATA[I can&#8217;t begin to express how delighted I am at all of the wonderful comments, suggestions, and corrections that have been coming in on the Accelerated C++ Solutions. I would be updating the pages and replying to the comments more, but I&#8217;m horribly swamped at my day job right now and I barely have time [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t begin to express how delighted I am at all of the wonderful comments, suggestions, and corrections that have been coming in on the <a href="/accelerated-cpp-solutions/">Accelerated C++ Solutions</a>. I would be updating the pages and replying to the comments more, but I&#8217;m horribly swamped at my day job right now and I barely have time to do anything but camp out at the office.</p>
</p>
<p>Please, keep the comments coming, and I&#8217;ll do my best to give them the attention they deserve in a few weeks! Thank you all so much!</p></p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F09%2Fcomments-on-accelerated-c-solutions%2F&amp;t=Comments%20on%20Accelerated%20C%2B%2B%20Solutions" id="facebook_share_button_697" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_697') || document.getElementById('facebook_share_icon_697') || document.getElementById('facebook_share_both_697') || document.getElementById('facebook_share_button_697');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_697') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/09/comments-on-accelerated-c-solutions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google+ Is Pretty Nice</title>
		<link>http://www.parkscomputing.com/2011/08/google-is-pretty-nice/</link>
		<comments>http://www.parkscomputing.com/2011/08/google-is-pretty-nice/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 18:58:41 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[social]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=689</guid>
		<description><![CDATA[I finally got on Google+, and so far it&#8217;s pretty nice. I&#8217;ve got a bunch of invites, and after I let my friends and family get a chance at claiming them I&#8217;ll post a link here for the rest of you to use, if you&#8217;re interested in trying it out. If you&#8217;re already on Google+ [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got on <a href="http://plus.google.com/">Google+</a>, and so far it&#8217;s pretty nice. I&#8217;ve got a bunch of invites, and after I let my friends and family get a chance at claiming them I&#8217;ll post a link here for the rest of you to use, if you&#8217;re interested in trying it out. If you&#8217;re already on Google+ you can find me <a href="https://plus.google.com/115182783625426203205/posts">here</a>.</p>
<p>Lately I&#8217;ve been getting more and more frustrated with Facebook and its shortcomings. While Google has a tall mountain to climb to catch up with Facebook, I think they&#8217;ve got a pretty good start.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F08%2Fgoogle-is-pretty-nice%2F&amp;t=Google%2B%20Is%20Pretty%20Nice" id="facebook_share_button_689" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_689') || document.getElementById('facebook_share_icon_689') || document.getElementById('facebook_share_both_689') || document.getElementById('facebook_share_button_689');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_689') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/08/google-is-pretty-nice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>About the Bizarre Search Results</title>
		<link>http://www.parkscomputing.com/2011/06/about-the-bizarre-search-results/</link>
		<comments>http://www.parkscomputing.com/2011/06/about-the-bizarre-search-results/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 23:35:32 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[site]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=682</guid>
		<description><![CDATA[If you happen to search Google for parkscomputing.com you&#8217;ll likely get some hits for strange, spam-sounding articles. These are the result of a wiki hack that went on for some time without my knowledge. I had a C++ wiki site for a while, but somehow it got hacked by spammers. Now there are several choice [...]]]></description>
			<content:encoded><![CDATA[<p>If you happen to search Google for parkscomputing.com you&#8217;ll likely get some hits for strange, spam-sounding articles. These are the result of a wiki hack that went on for some time without my knowledge. I had a C++ wiki site for a while, but somehow it got hacked by spammers. Now there are several choice keywords that have my name and site attached to them.</p>
<p>I don&#8217;t know how long it will take for Google to get around to removing those links, or if they&#8217;ll ever go away.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F06%2Fabout-the-bizarre-search-results%2F&amp;t=About%20the%20Bizarre%20Search%20Results" id="facebook_share_button_682" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_682') || document.getElementById('facebook_share_icon_682') || document.getElementById('facebook_share_both_682') || document.getElementById('facebook_share_button_682');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_682') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/06/about-the-bizarre-search-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Olympic Note Passing</title>
		<link>http://www.parkscomputing.com/2011/06/olympic-note-passing/</link>
		<comments>http://www.parkscomputing.com/2011/06/olympic-note-passing/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 16:21:29 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[analogies]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=654</guid>
		<description><![CDATA[A good analogy can often be useful to explain intricate technical details. In an earlier article, &#8220;Wrong Fish Food&#8221;, I related an analogy that I used to describe a technical issue to a non-technical audience. This article shares an analogy I created for a technical audience, because sometimes even techies need an analogy to grasp [...]]]></description>
			<content:encoded><![CDATA[<p>A good analogy can often be useful to explain intricate technical details. In an earlier article, <a href="http://www.parkscomputing.com/2011/04/wrong-fish-food/">&#8220;Wrong Fish Food&#8221;</a>, I related an analogy that I used to describe a technical issue to a non-technical audience. This article shares an analogy I created for a technical audience, because sometimes even techies need an analogy to grasp an unfamiliar technology.</p>
<p><span id="more-654"></span></p>
<p>For the past few years I&#8217;ve been responsible for maintaining a subsystem that allows a point-of-sale system to communicate with external applications. These external applications may display information gathered from the POS and poke inputs back into it. I was involved in the initial development of the subsystem back in 2004 or so, and when the other developers left for other positions it fell to me to continue enhancing and supporting the subsystem.</p>
<p>I wasn&#8217;t happy with the first implementation because of some design problems, but I couldn&#8217;t change the design too much without impacting existing integrations with the subsystem. Instead, over the course of a year or so I made several improvements to the bits of code that integrated the subsystem with other applications and improved the API that the subsystem exposes.</p>
<p>Considering the number of transactions it supports every day across hundreds of installations, I think the subsystem is rather fast and stable. Occasionally, however, whenever there is a performance issue with an application that uses the subsystem, the subsystem itself gets blamed, and I am usually called upon to investigate the issue. While there <em>are</em> some scenarios that can trigger bottlenecks with the subsystem, the problems I investigate are pretty much never the fault of the subsystem.</p>
<p>Finally, after having to explain the intricate technical details yet again, I decided to come up with an analogy to explain how the subsystem works, how it <em>could</em> be a bottleneck is some scenarios, and why it usually wasn&#8217;t the bottleneck in spite of the possibility. I e-mailed the analogy to all interested parties, and it seems to have had the desired effect. I&#8217;ve edited the analogy to remove specific product and subsystem names and provided it here. In the wrap-up, I changed the name of the subsystem to NPS, for Note-Passing Subsystem.</p>
<h2>The Story of Olympic Note Passing</h2>
<p>We&#8217;re going to imagine a strange sport called Olympic Note Passing. Two runners run around adjacent circular tracks: Runner A, and runner F. Each time runner A reaches the outside portion of the track he picks up a message that he will deliver to runner F. Runner F will then deliver this message to the other side of track F. Never mind why this happens; some sports are just unusual (think golf or curling).</p>
<p>Now, the first time this sport was introduced into the Olympics, the messages were passed from runner A to runner F via a specially designed, and somewhat magical, box. This box accepts messages via a device like a bill acceptor, and on the other side of the box is a device like a bill dispenser that spits out formatted, translated copies of the messages that were put into the other side. This way, runners from different nations that speak different languages can still participate in the sport and understand the messages being passed from A to F.</p>
<p>Runners on the two tracks could run at independent speeds, so that runner A could stop for just a moment and place a message into the box before taking off around the track again, and runner F could stop for just a moment to pick up any messages that were waiting.</p>
<div id="attachment_657" class="wp-caption aligncenter" style="width: 668px"><a href="http://www.parkscomputing.com/wp-content/uploads/Note-Passing-1.jpg"><img src="http://www.parkscomputing.com/wp-content/uploads/Note-Passing-1.jpg" alt="Note Passing, Old Style" title="Note Passing, Old Style" width="658" height="270" class="size-full wp-image-657" /></a><p class="wp-caption-text">The original practice of Olympic Note Passing</p></div>
<p>There was a problem with this magic box, however. If runner A was placing messages into one side of the box, runner F could not take any messages out of the box until A was finished. Likewise, if runner F was taking messages out, runner A couldn&#8217;t place any messages into the box. This turned out to be a problem because the runners had to keep stopping and waiting for each other.</p>
<p>This state of affairs threatened to kill the fledgling sport before it ever got started, since spectators didn&#8217;t want to see the two runners stopping, starting, and waiting for each other all the time, so the Olympic committee had to come up with a solution. One intrepid committee member suggested designing new magic boxes so that messages could be inserted and extracted at the same time, but the committee had already spent a lot of money designing the existing boxes, and any new boxes would have to be the same size, shape, and color as the existing boxes and would have to work EXACTLY the same way in every other respect. Furthermore, the guy that designed the original boxes was now working for NASCAR and doing equally silly things to the <a href="http://en.wikipedia.org/wiki/Car_of_Tomorrow">Car of Tomorrow</a>.</p>
<p>The way the committee decided to fix this problem was to station a person on either side of the magic box: helper A, and helper F. Now, runner A just hands messages to helper A on the way around the track, and helper A inserts the message into the machine while runner A keeps moving. Likewise, helper F extracts any waiting messages from the machine and hands them off to runner F when he comes around the track. If helper A sees that the machine is busy and he can&#8217;t insert any messages, he will just put the new messages in his pocket until the machine is available. Helper F will pull messages out of the machine as soon as they are available and keep them in his pocket until runner F comes around the track. If helper F has no messages, he will wave runner F on around the track.</p>
<div id="attachment_658" class="wp-caption aligncenter" style="width: 785px"><a href="http://www.parkscomputing.com/wp-content/uploads/Note-Passing-2.jpg"><img src="http://www.parkscomputing.com/wp-content/uploads/Note-Passing-2.jpg" alt="" title="Note Passing 2" width="775" height="270" class="size-full wp-image-658" /></a><p class="wp-caption-text">New and improved Olympic Note Passing</p></div>
<p>Now, we&#8217;ll bring all of this around to the actual NPS design. Runner A is an AwesomePOS system, and Runner F is FooApp. The magic box is NPS. The messages being passed through the magic box are NPS messages. The redesigned sport, with helper A and helper B, represents the new NPS integration design introduced at SuperCustomer in late 2009 and early 2010. The people stationed on either side of the magic box are the independent threads that are now running in AwesomePOS and FooApp that service the NPS message queue.</p>
<p>With this picture in mind, it should be a little more apparent why NPS is pretty much never the source of any performance issues in current implementations, but why it can be a performance bottleneck if the integration is not done carefully. If AwesomePOS or FooApp have to keep stopping and starting to deal with NPS, it can impact the performance of the entire system. With the new design, however, NPS is much less of a bottleneck since runners A and F can now keep moving around the track a lot more smoothly, but messages can still get from one side of track A to the other side of track F no more quickly than the slower runner can move.</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F06%2Folympic-note-passing%2F&amp;t=Olympic%20Note%20Passing" id="facebook_share_button_654" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_654') || document.getElementById('facebook_share_icon_654') || document.getElementById('facebook_share_both_654') || document.getElementById('facebook_share_button_654');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_654') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/06/olympic-note-passing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>COMPUTE! Magazine Archives!</title>
		<link>http://www.parkscomputing.com/2011/04/compute-magazine-archives/</link>
		<comments>http://www.parkscomputing.com/2011/04/compute-magazine-archives/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 16:00:08 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[nostalgia]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=637</guid>
		<description><![CDATA[I love the Internet! I just found an archive of COMPUTE! magazine, which is the magazine that taught me how to program in the 1980&#8242;s. Just recently I was lamenting not keeping every single issue I ever had (which was most of them), but now I can flip back through them any time. Looking through [...]]]></description>
			<content:encoded><![CDATA[<p>I love the Internet! I just found an <a href="http://www.atarimagazines.com/compute/index/">archive of <em>COMPUTE!</em> magazine</a>, which is the magazine that taught me how to program in the 1980&#8242;s. Just recently I was lamenting not keeping every single issue I ever had (which was most of them), but now I can flip back through them any time. Looking through the site really brought back some memories of when I first started messing with computers, around 1983 or so.</p>
<p>I would run straight from the mailbox to my <a href="http://oldcomputers.net/ti994a.html">TI-99/4A</a> (later, it was a <a href="http://oldcomputers.net/c64.html">Commodore 64</a>) when a new issue of <em>COMPUTE!</em> arrived. Each issue had several program listings that readers could type in and run, usually in BASIC. The really good games and utilities were in assembly language, but these weren&#8217;t published as assembly listings. They were page after page of BASIC code consisting almost entirely of DATA statements full of numbers that would get <a href="http://en.wikipedia.org/wiki/PEEK_and_POKE">POKE</a>d into memory by a FOR loop.</p>
<div class="example">
<pre>
10 DATA -343, 162, 5, 189, 181, 224, 149, 194, 202, 16, 248, 169, 239, 133, 210, 96
11 DATA 173, -343, 133, 134, 173, -342, 133, 135, 169, 255, 133, 124, 160, 0, 162
12 DATA 3, 134, 125, 162, 3, 32, -272, 208, 249, 202, 208, 248, 32, -272, 32, -272
13 DATA 76, 106, 197, 162, 5, 189, -6, 149, 194, 202, 16, 248, 169, 242, 133, 210, 96
14 DATA 230, 124, 208, 2, 230, 125, 177, 124, 96, 230, 201, 208, 2, 230, 202, 96, 32
15 DATA 197, 0, 8, 72, 133, 79, 138, 72, 152, 72, 166, 137, 165, 136, 197, 77, 208, 4
16 DATA 228, 78, 240, 107, 133, 77, 133, 82, 134, 78, 134, 83, 173, 4, 2, 208, 14, 169
17 DATA 3, 133, 74, 202, 208, 253, 136, 208, 250, 198, 74, 16, 246, 32, -54, 169, 160
18 DATA 160, 80, 153, 255, 127, 136, 208, 250, 132, 76, 132, 84, 132, 85, 132, 86, 120
19 DATA 248, 160, 15, 6, 82, 38, 83, 162, 253, 181, 87, 117, 87, 149, 87, 232, 48, 247
20 DATA 136, 16, 238, 216, 88, 162, 2, 169, 48, 133, 89, 134, 88, 181, 84, 72, 74, 74
21 DATA 74, 74, 32, -44, 104, 44, 15, 32, -44, 166, 88, 202, 16, 233, 32, -38, 32, -38
22 DATA 165, 75, 197, 201, 240, 55, 165, 79, 208, 4, 133, 77, 240, 47, 16, 42, 201, 255
23 DATA 208, 8, 169, 94, 32, -30, 24, 144, 33, 41, 127, 170, 160, 0, 185, 145, 192, 48
24 DATA 3, 200, 208, 248, 200, 202, 16, 244, 185, 145, 192, 48, 6, 32, -32, 200, 208
25 DATA 245, 41, 127, 32, -32, 165, 201, 133, 75, 104, 168, 104, 170, 104, 40, 96, 168
26 DATA 173, 64, 232, 41, 32, 208, 249, 152, 96, 9, 48, 197, 89, 208, 4, 169, 32, 208
27 DATA 2, 198, 89, 41, 63, 9, 128, 132, 81, 32, -54, 164, 76, 153, 0, 128, 192, 79, 208
28 DATA 2, 160, 7, 200, 132, 76, 164, 81, 96, 76, -256, 32, -263
</pre>
</div>
<p>I&#8217;d sit and type page after page after page of that, and if I did it right, I could play a game until it was time to turn off the computer and do homework. Then, if I wanted to play it again, I&#8217;d type all of that in again, until I finally put a <a href="http://www.mainbyte.com/ti99/hardware/cassette/recorder.html">cassette recorder</a> on layaway at Sears so I could store the programs.</p>
<p>The cassette recorder was pretty entertaining, too. There was a counter that could be used to keep track of where each program was on the cassette. I kept a sheet of paper next to the computer filled with tape labels and counter positions so I could find all my programs when I needed them. The TI recorder would actually play the bits as audio while the program loaded, and after that I could pop in a music cassette and play it through the TV speakers. That was way before Winamp.</p>
<p>Yes, I said &#8220;TV.&#8221; I didn&#8217;t have a computer monitor until a few years later. My gracious parents, who I suppose had decided that I might eventually make a living with computers and move out, would let me monopolize the TV for hours at a time while I drew silly pictures on the screen with my computer. I would sketch, for example, the USS Enterprise on graph paper, split the graph grid into 8&#215;8 squares, convert each row of each 8&#215;8 grid into a hex number, then type those hex numbers into a BASIC program that would draw the picture.</p>
<p>Mind you, this was <em>the</em> family TV, back before there were TVs in every room. It sat on a low table in the living room, and I would perch on an ottoman in front of it while I exercised my low-resolution artistic talents. I guess I wore the TV out, because the red component of the picture would flake out after a while, leaving a greenish-blue tint.</p>
<p>Ah, the good ol&#8217; days. I don&#8217;t miss them at all.</p>
<div class="wp-caption alignnone" style="width: 660px"><a href="http://www.mainbyte.com/ti99/hardware/cassette/recorder.html"><img alt="" src="http://www.mainbyte.com/ti99/hardware/cassette/top.jpg" title="TI Cassette Recorder" width="650" height="451" /></a><p class="wp-caption-text">That counter was my best friend.</p></div>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F04%2Fcompute-magazine-archives%2F&amp;t=%3Cem%3ECOMPUTE%21%3C%2Fem%3E%20Magazine%20Archives%21" id="facebook_share_button_637" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_637') || document.getElementById('facebook_share_icon_637') || document.getElementById('facebook_share_both_637') || document.getElementById('facebook_share_button_637');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_637') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/04/compute-magazine-archives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I have a wide screen. Let me use it.</title>
		<link>http://www.parkscomputing.com/2011/04/i-have-a-wide-screen-let-me-use-it/</link>
		<comments>http://www.parkscomputing.com/2011/04/i-have-a-wide-screen-let-me-use-it/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 19:20:44 +0000</pubDate>
		<dc:creator>paulmooreparks</dc:creator>
				<category><![CDATA[UI]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.parkscomputing.com/?p=629</guid>
		<description><![CDATA[Dear web-design people, Please don&#8217;t design sites that look like this: Rather, please design sites that look like this: I&#8217;m not knocking Herb Sutter, here. I&#8217;m pretty sure he&#8217;s just using a stock template, but templates that don&#8217;t flow to fit the browser width really puzzle me. Is there a good reason for them that [...]]]></description>
			<content:encoded><![CDATA[<p>Dear web-design people,</p>
<p>Please don&#8217;t design sites that look like this:</p>
<div id="attachment_630" class="wp-caption alignnone" style="width: 310px"><a href="http://www.parkscomputing.com/wp-content/uploads/BadWebDesign.png"><img src="http://www.parkscomputing.com/wp-content/uploads/BadWebDesign-300x164.png" alt="Waste of space!" title="Bad Web Design" width="300" height="164" class="size-medium wp-image-630" /></a><p class="wp-caption-text">Waste of space!</p></div>
<p>Rather, please design sites that look like this:</p>
<div id="attachment_632" class="wp-caption alignnone" style="width: 310px"><a href="http://www.parkscomputing.com/wp-content/uploads/GoodWebDesign.png"><img src="http://www.parkscomputing.com/wp-content/uploads/GoodWebDesign-300x164.png" alt="This uses space more effectively." title="Good Web Design" width="300" height="164" class="size-medium wp-image-632" /></a><p class="wp-caption-text">This uses space more effectively.</p></div>
<p>I&#8217;m not knocking Herb Sutter, here. I&#8217;m pretty sure he&#8217;s just using a stock template, but templates that don&#8217;t flow to fit the browser width really puzzle me. Is there a good reason for them that I&#8217;m just not aware of?</p>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.parkscomputing.com%2F2011%2F04%2Fi-have-a-wide-screen-let-me-use-it%2F&amp;t=I%20have%20a%20wide%20screen.%20Let%20me%20use%20it." id="facebook_share_button_629" style="font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; display: -moz-inline-block; display:inline-block; padding:1px 20px 0 5px; margin: 5px 0; height:15px; border:1px solid #d8dfea; color: #3B5998; background: #fff url(http://b.static.ak.fbcdn.net/images/share/facebook_share_icon.gif) no-repeat top right;">Share</a>
	<script type="text/javascript">
	<!--
	var button = document.getElementById('facebook_share_link_629') || document.getElementById('facebook_share_icon_629') || document.getElementById('facebook_share_both_629') || document.getElementById('facebook_share_button_629');
	if (button) {
		button.onclick = function(e) {
			var url = this.href.replace(/share\.php/, 'sharer.php');
			window.open(url,'sharer','toolbar=0,status=0,width=626,height=436');
			return false;
		}
	
		if (button.id === 'facebook_share_button_629') {
			button.onmouseover = function(){
				this.style.color='#fff';
				this.style.borderColor = '#295582';
				this.style.backgroundColor = '#3b5998';
			}
			button.onmouseout = function(){
				this.style.color = '#3b5998';
				this.style.borderColor = '#d8dfea';
				this.style.backgroundColor = '#fff';
			}
		}
	}
	-->
	</script>
	]]></content:encoded>
			<wfw:commentRss>http://www.parkscomputing.com/2011/04/i-have-a-wide-screen-let-me-use-it/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

