<?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>Preston Lee</title>
	<atom:link href="http://www.prestonlee.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.prestonlee.com</link>
	<description>Founder, CEO, OpenRain.com</description>
	<pubDate>Thu, 14 Aug 2008 20:23:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Need Monitor Color Profiles (.ICC Files)</title>
		<link>http://www.prestonlee.com/archives/294</link>
		<comments>http://www.prestonlee.com/archives/294#comments</comments>
		<pubDate>Thu, 14 Aug 2008 20:23:13 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=294</guid>
		<description><![CDATA[OpenRain will be launching a simple, online .ICC monitor color profile database shortly, and is looking for .ICC file contributions generated with hardware colorimeters. We&#8217;re also looking for administrators/moderators to add display models, remove bogus content, seek out .ICCs for missing models and suggest new features. If you work in the computers or graphic design [...]]]></description>
			<content:encoded><![CDATA[<p>OpenRain will be launching a simple, online .ICC monitor color profile database shortly, and is looking for .ICC file contributions generated with hardware colorimeters. We&#8217;re also looking for administrators/moderators to add display models, remove bogus content, seek out .ICCs for missing models and suggest new features. If you work in the computers or graphic design space and would like to get involved for the sake of design professionals everywhere, hit me up!</p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Need%20Monitor%20Color%20Profiles%20%28.ICC%20Files%29&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F294"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Need Monitor Color Profiles (.ICC Files)";
		a2a_linkurl="http://www.prestonlee.com/archives/294";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/294/feed</wfw:commentRss>
		</item>
		<item>
		<title>Installing The MySQL Ruby Gem When Using The Official MySQL .dmg</title>
		<link>http://www.prestonlee.com/archives/288</link>
		<comments>http://www.prestonlee.com/archives/288#comments</comments>
		<pubDate>Tue, 12 Aug 2008 18:10:36 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=288</guid>
		<description><![CDATA[
If you installed MySQL using the official .dmg package provided by MySQL AB/Sun and are trying to install the native MySQL gem, you&#8217;ll need to pass a bunch of flags to the gem install process to get the thing to compile. Try this..
sudo gem install mysql &#8212; &#8211;with-mysql-config=/usr/local/mysql/bin/mysql_config
..if you still have issues (check your /opt/local/lib/ruby/gems/&#60;ruby_ver&#62;/gems/mysql-&#60;gem_ver&#62;/mkmf.log file), try [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/08/logo_mysql_sun.gif"><img class="alignright size-medium wp-image-289" title="logo_mysql_sun" src="http://www.prestonlee.com/wp-content/uploads/2008/08/logo_mysql_sun.gif" alt="" width="205" height="68" /></a></p>
<p>If you installed MySQL using <a href="http://dev.mysql.com/downloads/mysql/" onclick="javascript:pageTracker._trackPageview ('/outbound/dev.mysql.com');">the official .dmg package provided by MySQL AB/Sun</a> and are trying to install the native MySQL gem, you&#8217;ll need to pass a bunch of flags to the gem install process to get the thing to compile. Try this..</p>
<blockquote><p>sudo gem install mysql &#8212; &#8211;with-mysql-config=/usr/local/mysql/bin/mysql_config</p></blockquote>
<p>..if you still have issues (check your /opt/local/lib/ruby/gems/&lt;ruby_ver&gt;/gems/mysql-&lt;gem_ver&gt;/mkmf.log file), try this instead..</p>
<blockquote><p>sudo gem install mysql &#8212; &#8211;with-mysql-dir=/usr/local/mysql &#8211;with-mysql-include=/usr/local/mysql/include/ &#8211;with-mysql-lib=/usr/local/mysql/lib/ &#8211;with-mysql-config=/usr/local/mysql/bin/mysql_config</p></blockquote>
<p>Run `sudo gem install mysql` and definitely recheck the log file again as the gem install process sometimes reports false positives even if native components fail to install.</p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Installing%20The%20MySQL%20Ruby%20Gem%20When%20Using%20The%20Official%20MySQL%20.dmg&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F288"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Installing The MySQL Ruby Gem When Using The Official MySQL .dmg";
		a2a_linkurl="http://www.prestonlee.com/archives/288";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/288/feed</wfw:commentRss>
		</item>
		<item>
		<title>OpenRain 1.0 Officially Launched w/New Logo &#038; Blog!</title>
		<link>http://www.prestonlee.com/archives/277</link>
		<comments>http://www.prestonlee.com/archives/277#comments</comments>
		<pubDate>Thu, 17 Jul 2008 23:56:49 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

		<category><![CDATA[open house]]></category>

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=277</guid>
		<description><![CDATA[
Pretty much all of OpenRain&#8217;s Q2 internal efforts boil down to tomorrow&#8217;s open house: a massive milestone date where all our startupy HR, legal and infrastructure tasks are done, and we consider ourselves a properly running software development company under a new brand. OpenRain 1.0 is neither a product nor service, but a state-of-being which [...]]]></description>
			<content:encoded><![CDATA[<p><a href="feed://blog.openrain.com/feed/" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.openrain.com');"><img class="alignright size-medium wp-image-278" title="rss_big" src="http://www.prestonlee.com/wp-content/uploads/2008/07/rss_big.png" alt="" width="182" height="183" /></a></p>
<p>Pretty much all of OpenRain&#8217;s Q2 internal efforts boil down to <a href="http://blog.openrain.com/2008/07/17/open-house-this-friday/" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.openrain.com');">tomorrow&#8217;s open house</a>: a massive milestone date where all our startupy HR, legal and infrastructure tasks are done, and we consider ourselves a properly running software development company under a new brand. OpenRain 1.0 is neither a product nor service, but a state-of-being which represents our transition from <em>a-bunch-of-dudes-hacking-on-web-projects</em> to <em>a-bunch-of-dudes-hacking-on-web-projects-really-freaking-well</em>. We&#8217;re kicking off this exciting new period with <a href="http://blog.openrain.com/2008/07/17/open-house-this-friday/" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.openrain.com');">a catered open house tomorrow</a>.</p>
<p>We&#8217;re also launching several new sites today. First is our main landing page, <a href="http://www.openrain.com" onclick="javascript:pageTracker._trackPageview ('/outbound/www.openrain.com');">www.openrain.com</a>, updated with our new logo and color scheme. Second is <a href="http://blog.openrain.com" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.openrain.com');">blog.openrain.com</a>, which we&#8217;ll be using for upcoming public event announcements, non-NDA&#8217;d project links and technical resource for our officially supported software.</p>
<p><a href="feed://blog.openrain.com/feed/" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.openrain.com');">Subscribe to the OpenRain</a> feed using the ridiculously large RSS button on the right.</p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=OpenRain%201.0%20Officially%20Launched%20w%2FNew%20Logo%20%03%20Blog%21&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F277"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="OpenRain 1.0 Officially Launched w/New Logo  Blog!";
		a2a_linkurl="http://www.prestonlee.com/archives/277";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/277/feed</wfw:commentRss>
		</item>
		<item>
		<title>Apple Says Sorry For MobileMe Boo-Boos</title>
		<link>http://www.prestonlee.com/archives/270</link>
		<comments>http://www.prestonlee.com/archives/270#comments</comments>
		<pubDate>Wed, 16 Jul 2008 18:49:48 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=270</guid>
		<description><![CDATA[If you&#8217;re an existing .Mac user, you may have noticed the new MobileMe services sucking a lot since the iPhone 3G launch. Apple will be &#8220;..giving all current subscribers an automatic 30-day extension to their MobileMe subscription free of charge.&#8221; Full email text..
MobileMe Services Now Available.
We have recently completed the transition from .Mac to MobileMe. [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re an existing .Mac user, you may have noticed the new MobileMe services sucking a lot since the iPhone 3G launch. Apple will be &#8220;..giving all current subscribers an automatic 30-day extension to their MobileMe subscription free of charge.&#8221; Full email text..</p>
<blockquote><p>MobileMe Services Now Available.</p>
<p>We have recently completed the transition from .Mac to MobileMe. Unfortunately, it was a lot rockier than we had hoped.</p>
<p>Although core services such as Mail, iDisk, Sync, Back to My Mac, and Gallery went relatively smoothly, the new MobileMe web applications had lots of problems initially. Fortunately we have worked through those problems and the web apps are now up and running.</p>
<p>Another snag we have run into is our use of the word &#8220;push&#8221; in describing everything under the MobileMe umbrella. While all email, contact or calendar changes on the iPhone and the web apps are immediately synced to and from the MobileMe &#8220;cloud,&#8221; changes made on a PC or Mac take up to 15 minutes to sync with the cloud and your other devices. So even though things are indeed instantly pushed to and from your iPhone and the web apps today, we are going to stop using the word &#8220;push&#8221; until it is near-instant on PCs and Macs, too.</p>
<p>We want to apologize to our loyal customers and express our appreciation for their patience by giving all current subscribers an automatic 30-day extension to their MobileMe subscription free of charge. Your extension will be reflected in your account settings within the next few weeks.</p>
<p>We hope you enjoy your new suite of web applications at me.com, in addition to keeping your iPhone and iPod touch wirelessly in sync with these new web applications and your Mac or PC.</p>
<p>Thank you,</p>
<p>The MobileMe Team</p></blockquote>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Apple%20Says%20Sorry%20For%20MobileMe%20Boo-Boos&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F270"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Apple Says Sorry For MobileMe Boo-Boos";
		a2a_linkurl="http://www.prestonlee.com/archives/270";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/270/feed</wfw:commentRss>
		</item>
		<item>
		<title>My iPhone 2.0 Upgrade Not Reactivating</title>
		<link>http://www.prestonlee.com/archives/267</link>
		<comments>http://www.prestonlee.com/archives/267#comments</comments>
		<pubDate>Fri, 11 Jul 2008 17:28:17 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=267</guid>
		<description><![CDATA[It seems like there&#8217;s some sort of service outages with the iTunes store related to users upgrading to the iPhone 2.0 firmware. The firmware download and upgrade process seems to have upgrade fine, but mine is stuck on the please-connect-to-itunes screen. All I can do right now is view the IMEI and ICCID, and make [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like there&#8217;s some sort of service outages with the iTunes store related to users upgrading to the iPhone 2.0 firmware. The firmware download and upgrade process seems to have upgrade fine, but mine is stuck on the please-connect-to-itunes screen. All I can do right now is view the IMEI and ICCID, and make emergency calls.</p>
<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/07/iphone_2_upgrade.png"><img class="alignnone size-medium wp-image-268" title="iphone_2_upgrade" src="http://www.prestonlee.com/wp-content/uploads/2008/07/iphone_2_upgrade.png" alt="" width="550" /></a></p>
<p><strong>Update</strong>: After 4 continuous hours of having it plugged in, it finally reactivated and synced. PITA, but the new apps are <strong><em>hot</em></strong>!!!</p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=My%20iPhone%202.0%20Upgrade%20Not%20Reactivating&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F267"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="My iPhone 2.0 Upgrade Not Reactivating";
		a2a_linkurl="http://www.prestonlee.com/archives/267";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/267/feed</wfw:commentRss>
		</item>
		<item>
		<title>Virtual OS X Server Screenshots</title>
		<link>http://www.prestonlee.com/archives/264</link>
		<comments>http://www.prestonlee.com/archives/264#comments</comments>
		<pubDate>Wed, 09 Jul 2008 19:05:23 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=264</guid>
		<description><![CDATA[Apple now allow you to virtualize OS X Server instances. While your virtualization options are limited, it&#8217;s very easy to set up on your existing OS X Server.
This is an virtualized OS X Leopard Server guest running in Parallels Server on a host OS X Leopard Server. You can see that the guest system is [...]]]></description>
			<content:encoded><![CDATA[<p>Apple now allow you to virtualize OS X Server instances. While your virtualization options are limited, it&#8217;s very easy to set up on your existing OS X Server.</p>
<p>This is an virtualized OS X Leopard Server guest running in Parallels Server on a host OS X Leopard Server. You can see that the guest system is treated similarly to other Windows and Linux VMs in the Parallels Management Console.</p>
<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/07/osx_admin.png"><img class="alignnone size-medium wp-image-266" title="osx_admin" src="http://www.prestonlee.com/wp-content/uploads/2008/07/osx_admin.png" alt="" width="500" /></a></p>
<p>Note that a distinct serial number/license seems to be required. The serial number for the host machine will not validate (I thought Apple was going to allow one VM instance???), so to use the sweet service configuration tools available in Server Admin, it appears you&#8217;ll need a separate license for now.</p>
<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/07/osx_serial.png"><img class="alignnone size-medium wp-image-265" title="osx_serial" src="http://www.prestonlee.com/wp-content/uploads/2008/07/osx_serial.png" alt="" width="500" /></a></p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Virtual%20OS%20X%20Server%20Screenshots&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F264"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Virtual OS X Server Screenshots";
		a2a_linkurl="http://www.prestonlee.com/archives/264";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/264/feed</wfw:commentRss>
		</item>
		<item>
		<title>Hacker Shopping Cart</title>
		<link>http://www.prestonlee.com/archives/262</link>
		<comments>http://www.prestonlee.com/archives/262#comments</comments>
		<pubDate>Wed, 02 Jul 2008 18:43:24 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=262</guid>
		<description><![CDATA[
My shopping cart..

Energy drinks.
Energy bars.
Energy backups.

Guess what I do for a living. 

    
    
		a2a_linkname="Hacker Shopping Cart";
		a2a_linkurl="http://www.prestonlee.com/archives/262";
						    
    

	]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/07/hacker_shopping.jpg"><img class="alignright alignnone size-medium wp-image-263" style="float: right;" title="hacker_shopping" src="http://www.prestonlee.com/wp-content/uploads/2008/07/hacker_shopping.jpg" alt="" width="300" height="225" /></a></p>
<p>My shopping cart..</p>
<ol>
<li>Energy drinks.</li>
<li>Energy bars.</li>
<li>Energy backups.</li>
</ol>
<p>Guess what I do for a living. <img src='http://www.prestonlee.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Hacker%20Shopping%20Cart&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F262"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Hacker Shopping Cart";
		a2a_linkurl="http://www.prestonlee.com/archives/262";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/262/feed</wfw:commentRss>
		</item>
		<item>
		<title>Bargain Of The Month: Apple + Adobe + HP + Crucial</title>
		<link>http://www.prestonlee.com/archives/251</link>
		<comments>http://www.prestonlee.com/archives/251#comments</comments>
		<pubDate>Wed, 25 Jun 2008 19:28:00 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=251</guid>
		<description><![CDATA[
If you qualify for an educator/student discounts from the Apple store and want a new machine, check out this crazy deal which I just did at OpenRain&#8230;
 

MacBook 2.4GHz White: $1300 - $100 .edu discount = $1200.
iPod Touch 8GB: $300 - $300 MIR == $0.
HP Photosmart C4480 All-In-One Scanner/Printer/Copier: $100 - $100 MIR = $0.
Adobe Creative Suite [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/06/happy_preston1.jpg"><img class="alignright alignnone size-medium wp-image-253" style="float: right;" title="happy_preston1" src="http://www.prestonlee.com/wp-content/uploads/2008/06/happy_preston1.jpg" alt="" width="221" height="300" /></a></p>
<p>If you qualify for an educator/student discounts from the Apple store and want a new machine, check out this crazy deal which I just did at <a href="http://www.openrain.com" onclick="javascript:pageTracker._trackPageview ('/outbound/www.openrain.com');">OpenRain</a>&#8230;</p>
<p> </p>
<ol>
<li><strong>MacBook 2.4GHz White</strong>: $1300 - $100 .edu discount = <strong><em>$1200</em></strong>.</li>
<li><strong>iPod Touch 8GB</strong>: $300 - $300 MIR == <em><strong>$0</strong></em>.</li>
<li><strong>HP Photosmart C4480</strong> All-In-One Scanner/Printer/Copier: $100 - $100 MIR = <em><strong>$0</strong></em>.</li>
<li><strong>Adobe Creative Suite 3 Web Premium</strong>: $1600 - $1300 IR = <em><strong>$300</strong></em>. (OMGWTFBYOB!!!)</li>
<li><strong>Crucial 2 x 2GB SODIMM RAM</strong>: <em><strong>$100</strong></em></li>
</ol>
<p> </p>
<p>Total: $1600 + taxes and express shipping ~= <em><strong>$1800</strong></em>. That&#8217;s one helluva bargain for a great midrange laptop (w/4GB RAM mind you) and the powerhouse of Adobe CS3 alone. The iPod and scanner just add to the sweetness! <em><strong>Rock on!</strong></em></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Bargain%20Of%20The%20Month%3A%20Apple%20%2B%20Adobe%20%2B%20HP%20%2B%20Crucial&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F251"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Bargain Of The Month: Apple + Adobe + HP + Crucial";
		a2a_linkurl="http://www.prestonlee.com/archives/251";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/251/feed</wfw:commentRss>
		</item>
		<item>
		<title>Parallels Server Pricing: Redux</title>
		<link>http://www.prestonlee.com/archives/250</link>
		<comments>http://www.prestonlee.com/archives/250#comments</comments>
		<pubDate>Wed, 25 Jun 2008 19:10:15 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=250</guid>
		<description><![CDATA[
After a few grumpy emails between myself and our Account Manager, I&#8217;m happy to report that we have purchased the GA release and it&#8217;s working well. If you are using Parallels Server for internal development purposes and not for hosting, they will extend a more reasonable price per machine: $200 + $50/year maintenance. I think [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/06/parallels_server.png"><img class="alignright size-full wp-image-246" style="float: right;" title="parallels_server" src="http://www.prestonlee.com/wp-content/uploads/2008/06/parallels_server.png" alt="" width="132" height="172" /></a></p>
<p>After a few grumpy emails between myself and our Account Manager, I&#8217;m happy to report that we <em>have</em> purchased the GA release and it&#8217;s working well. If you are using Parallels Server for internal development purposes and not for hosting, they will extend a more reasonable price per machine: <strong>$200 + $50/year maintenance</strong>. I think that&#8217;s a very reasonable price point for our usage, and am happy to pay it.</p>
<p>This likely has more to do with meeting end-of-Q2 sales quotas than attracting <em>my</em> dinky business, but regardless, a win is a win! <em><strong>Thanks!</strong></em></p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Parallels%20Server%20Pricing%3A%20Redux&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F250"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Parallels Server Pricing: Redux";
		a2a_linkurl="http://www.prestonlee.com/archives/250";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/250/feed</wfw:commentRss>
		</item>
		<item>
		<title>Switching To Dvorak: Seven Months Later</title>
		<link>http://www.prestonlee.com/archives/247</link>
		<comments>http://www.prestonlee.com/archives/247#comments</comments>
		<pubDate>Wed, 18 Jun 2008 22:40:39 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=247</guid>
		<description><![CDATA[
Today marks exactly seven months from the day I switched to the Dvorak keyboard layout.
Key Observations

72, 81 and 77 words per minute, clocked with three different one-minute tests on TypingTest.com.
In home-row-only tests I took several months ago, I was already consistently over 100 WPM. The many common home-row-only words (those spelled with A, O, E, U, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/06/dvorak.png"><img class="alignright alignnone size-medium wp-image-248" style="float: right;" title="dvorak" src="http://www.prestonlee.com/wp-content/uploads/2008/06/dvorak.png" alt="" width="300" height="170" /></a></p>
<p>Today marks exactly seven months from the day I switched to the Dvorak keyboard layout.</p>
<p><strong>Key Observations</strong></p>
<ol>
<li><strong>72, 81 and 77 words per minute</strong>, clocked with three different one-minute tests on TypingTest.com.</li>
<li><strong>In home-row-only tests</strong> I took several months ago, I was <strong>already consistently over 100 WPM</strong>. The many common home-row-only words (those spelled with A, O, E, U, I, D, H, T, N and S) are remarkably comfortable and fast to type.</li>
<li><strong>It&#8217;s all about muscle memory</strong>. I can type my thoughts just as well as the next guy without looking at the keyboard, but can&#8217;t recite you the upper or lower row keys by memory. Interesting, huh?</li>
<li><strong>The pain in my left-hand little finger tendon is gone</strong>! More of this is likely due, however, to also switching my Command and Caps Lock keys in software.</li>
</ol>
<p><strong>Other Conclusions</strong></p>
<ul>
<li>I&#8217;m much, much better at hunt-and pecking in Dvorak&#8211;that is, staring at a QWERTY keyboard set to Dvorak in software and &#8220;sensing&#8221; where the right key are with my pointer finger alone. (Useful when typing a few words on someone else&#8217;s box.) This is hard because of #3 above, but learnable.</li>
<li>I can now hunt-and-peck suitably on my iPhone (QWERTY only) keyboard.</li>
<li><strong>Typing QWERTY on a Dvorak keyboard is a lost cause</strong>. I have to stare at a secondary QWERTY keyboard to do so, because my muscles and mind have totally forgotten. (Again, see #3.)</li>
<li>Typing on a laptop keyboard feels better on your finger tendons, but just as uncomfortable on your wrists.</li>
<li><strong>Sharing windows machines with others is awkward and frustrating</strong>. Let me know if you have a good system tray applet for quick-switching the whole system to Dvorak, because team-admining a windows machine requires a hellish amount of clicks to set the system-wide keyboard layout.</li>
<li>Apple is absolutely <em>horrid</em> at designing with ergonomics in mind. (In their defense, they obviously aren&#8217;t trying.)</li>
<li>I haven&#8217;t discovered the mental gymnastics that allows you to type in QWERTY when necessary. I can type my name and common passwords in QWERTY, but that&#8217;s about it, sorry. <em>No hablo QWERTY</em>.</li>
<li>Stuff that now sucks because they are built for a QWERTY layout: emacs, vi, &lt;your_favorite_editor&gt;, Aperture, some Java apps. All games now require new key bindings off-the-bat too.</li>
</ul>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Switching%20To%20Dvorak%3A%20Seven%20Months%20Later&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F247"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Switching To Dvorak: Seven Months Later";
		a2a_linkurl="http://www.prestonlee.com/archives/247";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/247/feed</wfw:commentRss>
		</item>
		<item>
		<title>Parallels Server for Mac Pricing</title>
		<link>http://www.prestonlee.com/archives/245</link>
		<comments>http://www.prestonlee.com/archives/245#comments</comments>
		<pubDate>Tue, 10 Jun 2008 17:53:00 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=245</guid>
		<description><![CDATA[
Fresh from my inbox..
Parallels Server for Mac will be available soon. As a thank you to all participating Parallels Server for Mac Beta users, Parallels is offering an exclusive discount on a single Parallels Server for Mac license. Purchase this new software for only $700* - a 30% savings.
Hmm&#8230; well, the product has been working fairly well for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/06/parallels_server.png"><img class="alignright size-full wp-image-246" style="float: right;" title="parallels_server" src="http://www.prestonlee.com/wp-content/uploads/2008/06/parallels_server.png" alt="" width="132" height="172" /></a></p>
<p>Fresh from my inbox..</p>
<blockquote><p>Parallels Server for Mac will be available soon. As a thank you to all participating Parallels Server for Mac Beta users, Parallels is offering an <strong>exclusive discount</strong> on a single Parallels Server for Mac license. Purchase this new software for only $700* - a <strong>30% savings</strong>.</p></blockquote>
<p>Hmm&#8230; well, the product has been working fairly well for us at <a href="http://openrain.com" onclick="javascript:pageTracker._trackPageview ('/outbound/openrain.com');">OpenRain</a>, but I&#8217;m not sure $700 per major version is going to be worth it as opposed to buying another cheap Dell machine and running VMWare Server on Linux for free, which we already do in some of our hosted environments. Here&#8217;s the kicker in tiny font at the bottom of the email explaining the asterisk after &#8220;$700&#8243;..</p>
<blockquote><p><span style="font-size: xx-small;">* </span><span style="font-size: xx-small;">The limited-time discount offer is limited to a single server from May 30 - June 30, 2008. Annual maintenance is required at the time of purchase, starting at an additional $249.75 per year. For academic pricing and volume licensing, <a href="http://cl.exct.net/?ju=fe20157975640374721278&amp;ls=fdf212727c61027a76117077&amp;m=feff1674776503&amp;l=fe5e15747260077c7313&amp;s=fde915727c6c0d7c71127772&amp;jb=ffcf14&amp;t=" title="register now" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/cl.exct.net');"><span style="color: #ff0000;">register now</span></a> or contact Parallels Sales at +1 (425) 282-6400.</span></p></blockquote>
<p>So that&#8217;s $950 for the first year of our first system alone. Hmmmm&#8230; </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Parallels%20Server%20for%20Mac%20Pricing&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F245"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Parallels Server for Mac Pricing";
		a2a_linkurl="http://www.prestonlee.com/archives/245";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/245/feed</wfw:commentRss>
		</item>
		<item>
		<title>Netgear FVS114 - Worst POS SOHO Router Ever</title>
		<link>http://www.prestonlee.com/archives/244</link>
		<comments>http://www.prestonlee.com/archives/244#comments</comments>
		<pubDate>Sat, 07 Jun 2008 00:37:20 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=244</guid>
		<description><![CDATA[Some of the worst infrastructural issues OpenRain has had since inception has been border hardware. We&#8217;ve been through all typical COTS models you&#8217;d find at Best Buy, but all have had issues with at least one of..

Dropping inbound traffic due to some stupid &#8220;DDoS Protection&#8221; feature we couldn&#8217;t disable.
Not passing VPN traffic though to an [...]]]></description>
			<content:encoded><![CDATA[<p>Some of the worst infrastructural issues OpenRain has had since inception has been border hardware. We&#8217;ve been through all typical COTS models you&#8217;d find at Best Buy, but all have had issues with at least one of..</p>
<ul>
<li>Dropping inbound traffic due to some stupid &#8220;DDoS Protection&#8221; feature we couldn&#8217;t disable.</li>
<li>Not passing VPN traffic though to an internal server.</li>
<li>Crashing.</li>
</ul>
<p>But this latest POS&#8211;the <a href="http://www.netgear.com/Products/VPNandSSL/WiredVPNFirewallRouters/FVS114.aspx" onclick="javascript:pageTracker._trackPageview ('/outbound/www.netgear.com');">Netgear FVS114</a>&#8211;really takes the cake. Check it..</p>
<ol>
<li>Log in to http://www.workingwithrails.com</li>
<li>Visit http://www.workingwithrails.com/person/new</li>
<li>Listen for the sound of everyone simultaneously screaming &#8220;WTF!? The &#8216;net&#8217;s down!&#8221;</li>
</ol>
<p>We&#8217;ve reproduced this issue with FireFox and Safari from multiple machines inside the network. Way to go, Netgear! (Might want to get on this one.) I&#8217;ll be buying some <em>real</em> hardware online in about 15 minutes.</p>
<p> </p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Netgear%20FVS114%20-%20Worst%20POS%20SOHO%20Router%20Ever&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F244"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Netgear FVS114 - Worst POS SOHO Router Ever";
		a2a_linkurl="http://www.prestonlee.com/archives/244";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/244/feed</wfw:commentRss>
		</item>
		<item>
		<title>Leopard Server: Bonjour-Based DNS A Performance No-No</title>
		<link>http://www.prestonlee.com/archives/243</link>
		<comments>http://www.prestonlee.com/archives/243#comments</comments>
		<pubDate>Thu, 29 May 2008 17:57:09 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=243</guid>
		<description><![CDATA[Prior to moving into the new OpenRain office (announcement coming in June), we used OS X&#8217;s magical .local addressing to find all our servers. This allowed us to keep almost everything on DHCP, which is trivial to set up and administer. Little did we know, however, that this was being the root cause of many [...]]]></description>
			<content:encoded><![CDATA[<p>Prior to moving into the new OpenRain office (announcement coming in June), we used OS X&#8217;s magical .local addressing to find all our servers. This allowed us to keep almost everything on DHCP, which is trivial to set up and administer. Little did we know, however, that this was being the root cause of many internal issues.</p>
<ul>
<li>General network I/O performance (file server access, OpenLDAP-based logins etc.) sucked. Simply using Server Admin or Workgroup Manager across the network would often take 5+ seconds to log in.</li>
<li>Portable Home Directory (PHD) syncing, VPN and firewall services never seemed to work right, possibly due to nonequivalences between &#8220;server.example.com&#8221; and &#8220;server.local&#8221; in SSL and SSH. I&#8217;m not completely sure, but stuff broke in more ways than one.</li>
</ul>
<p><strong>Case in point: <em>do not use bonjour-based DNS for your core network services</em>. Use a proper DNS server from the start</strong>. DNS is a cornerstone dependency of all the other services provided by your Leopard server, so any performance issues you introduce at this level will carry through to your entire infrastructure.</p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Leopard%20Server%3A%20Bonjour-Based%20DNS%20A%20Performance%20No-No&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F243"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Leopard Server: Bonjour-Based DNS A Performance No-No";
		a2a_linkurl="http://www.prestonlee.com/archives/243";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/243/feed</wfw:commentRss>
		</item>
		<item>
		<title>Five Major Apple Design Irritants</title>
		<link>http://www.prestonlee.com/archives/239</link>
		<comments>http://www.prestonlee.com/archives/239#comments</comments>
		<pubDate>Mon, 26 May 2008 17:00:27 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=239</guid>
		<description><![CDATA[
Apple,
My software development firm&#8211;OpenRain in Arizona&#8211;spends buckets of money on your products. Stuff works pretty well in general, but you really need to address these issues. Really.

PowerBook, MacBook and MacBook Pro power supply cables invariably rip. Not only that, but it&#8217;s always at the same freaking places. The MackBook/Pro power supplies are better than the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/05/apple.jpeg"><img class="alignright alignnone size-medium wp-image-240" style="float: right;" title="apple" src="http://www.prestonlee.com/wp-content/uploads/2008/05/apple.jpeg" alt="" width="120" height="133" /></a></p>
<p>Apple,</p>
<p>My software development firm&#8211;<a href="http://openrain.com" onclick="javascript:pageTracker._trackPageview ('/outbound/openrain.com');">OpenRain in Arizona</a>&#8211;spends buckets of money on your products. Stuff works pretty well in general, but you really need to address these issues. Really.</p>
<ol>
<li><strong>PowerBook, MacBook and MacBook Pro power supply cables invariably rip</strong>. Not only that, but it&#8217;s always at the same freaking places. The MackBook/Pro power supplies are better than the PowerBook ones, but still don&#8217;t last more than a couple years of real-world use. The issue is at the endpoints of the laptop end of the cable that get bent constantly from travel and being wrapped sharply when the electric outlet is on the wrong side of the laptop. I really love the small and agile design, but <em>the cables need to last at least 4 years without tearing</em>.</li>
<li><strong>Laptops still run hot</strong>. Phoenix summer get hotter than 110 degrees Fahrenheit, and I have gotten physically burned by the MacBook Pros when wearing shorts. Product such as the <a href="http://www.raindesigninc.com/ilap.html" onclick="javascript:pageTracker._trackPageview ('/outbound/www.raindesigninc.com');">iLap</a> are amusing, but should not be necessary. <em>Getting physically hurt by a computer is a problem</em>.</li>
<li><strong>Keyboard are not ergonomic</strong>. The latest iteration of post-modern laptop-style bluetooth keyboards are great to look at, but absolutely horrid on the wrists. No one at the office really likes them in practice, and we&#8217;ve had to revert to the Microsoft Natural series of keyboards when have been around f-o-r-e-v-a-r but Apple hasn&#8217;t responded to. <em>I&#8217;m 100% confident you could build a swanky, highly usable bluetooth keyboard that puts the Naturals to shame.</em></li>
<li><strong>iPhone copy/paste support</strong>. It&#8217;ll be an awesome design accomplishment when we no longer need this, but you haven&#8217;t gotten there yet, sorry, and everyone else agrees. <em>Add copy/paste support (if only in key areas) to iPhone.</em></li>
<li><strong>iPhone needs to support dvorak</strong>. Yeah yeah&#8230;. I know I&#8217;m in the minority on this and am sneaking it in, but I spend a lot of money with you guys, and <em>having to use QWERTY just for the iPhone is driving me insane</em>. Add the freaking layout please.</li>
</ol>
<p> </p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Five%20Major%20Apple%20Design%20Irritants&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F239"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Five Major Apple Design Irritants";
		a2a_linkurl="http://www.prestonlee.com/archives/239";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/239/feed</wfw:commentRss>
		</item>
		<item>
		<title>Pictures: Cape Cod</title>
		<link>http://www.prestonlee.com/archives/237</link>
		<comments>http://www.prestonlee.com/archives/237#comments</comments>
		<pubDate>Sat, 24 May 2008 17:00:02 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Personal]]></category>

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

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

		<category><![CDATA[cape cod]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=237</guid>
		<description><![CDATA[
I was over in the Boston/Cape Cod area earlier this month. Only got to site see for a couple hours but still thought I&#8217;d share the few shots I have. What I learned while visiting..


My grandma once used Jackie O&#8217;s toilet.
I&#8217;m about 2 megadollars short of being able to live there.
Every photo you take would be [...]]]></description>
			<content:encoded><![CDATA[<div>
<div><a href="http://www.prestonlee.com/wp-content/uploads/2008/05/atlantic_cod.jpg"><img class="alignright alignnone size-medium wp-image-238" style="float: right;" title="atlantic_cod" src="http://www.prestonlee.com/wp-content/uploads/2008/05/atlantic_cod.jpg" alt="" width="240" height="102" /></a>I was over in the Boston/Cape Cod area earlier this month. Only got to site see for a couple hours but still thought I&#8217;d share <a href="http://www.flickr.com/photos/86807134@N00/sets/72157605221361261/show/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.flickr.com');">the few shots I have</a>. What I learned while visiting..</div>
<div>
<ul>
<li>My grandma once used Jackie O&#8217;s toilet.</li>
<li>I&#8217;m about 2 megadollars short of being able to live there.</li>
<li>Every photo you take would be perfect for a viagra ad.</li>
</ul>
</div>
</div>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Pictures%3A%20Cape%20Cod&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F237"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Pictures: Cape Cod";
		a2a_linkurl="http://www.prestonlee.com/archives/237";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/237/feed</wfw:commentRss>
		</item>
		<item>
		<title>Pictures: Costa Rican Landscapes</title>
		<link>http://www.prestonlee.com/archives/234</link>
		<comments>http://www.prestonlee.com/archives/234#comments</comments>
		<pubDate>Sat, 24 May 2008 00:28:35 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[costa rica]]></category>

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=234</guid>
		<description><![CDATA[I recently returned from a week-long trip from Costa Rica. These are best frames from the trip and are intended for large format viewing. Flickr royally sucks at that (everything is shown low-res by default), but you can nab higher-def shots with a few clicks if you have a 24&#8243;+ monitor and would like to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-235" style="float: right; border: 10px solid black; margin: 10px;" title="_mg_1004" src="http://www.prestonlee.com/wp-content/uploads/2008/05/_mg_1004.jpg" alt="" width="300" height="204" />I recently returned from a week-long trip from Costa Rica. These are best frames from the trip and are intended for large format viewing. Flickr royally sucks at that (everything is shown low-res by default), but you can nab higher-def shots with a few clicks if you have a 24&#8243;+ monitor and would like to fill your screen.</p>
<p>Contact me privately if you&#8217;d like copies of the highest resolution RAW sources. (JPEG == Yucky.)</p>
<p><a href="http://www.flickr.com/photos/86807134@N00/sets/72157605146845103/show/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.flickr.com');">Costa Rica 2008 Flickr Set</a></p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Pictures%3A%20Costa%20Rican%20Landscapes&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F234"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Pictures: Costa Rican Landscapes";
		a2a_linkurl="http://www.prestonlee.com/archives/234";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/234/feed</wfw:commentRss>
		</item>
		<item>
		<title>Book Review: Digital Astrophotography, by Stefan Seip</title>
		<link>http://www.prestonlee.com/archives/185</link>
		<comments>http://www.prestonlee.com/archives/185#comments</comments>
		<pubDate>Fri, 23 May 2008 23:38:28 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Photography]]></category>

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=185</guid>
		<description><![CDATA[Rocky Nook &#8211; a digital photography book publisher in California &#8212; sent me a review copy of Digital Astrophotography: A Guide to Capturing the Cosmos for review, which I read over the last few months.
Pros
 

A good overview of the techniques used in astrophotography.
Well illustrated.
Inexpensive.
Largely easy to follow for the casual reader.
Covers the entire process, from equipment to post-processing. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright alignnone size-medium wp-image-233" style="float: right;" title="digital_astrophotography" src="http://www.prestonlee.com/wp-content/uploads/2008/05/digital_astrophotography.jpg" alt="" width="240" height="240" /><a href="http://www.rockynook.com/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.rockynook.com');">Rocky Nook</a> &#8211; a digital photography book publisher in California &#8212; sent me a review copy of <a href="http://www.oreilly.com/catalog/9781933952161/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.oreilly.com');">Digital Astrophotography: A Guide to Capturing the Cosmos</a> for review, which I read over the last few months.</p>
<p><strong>Pros</strong></p>
<p> </p>
<ul>
<li>A good overview of the techniques used in astrophotography.</li>
<li>Well illustrated.</li>
<li>Inexpensive.</li>
<li>Largely easy to follow for the casual reader.</li>
<li>Covers the entire process, from equipment to post-processing. I&#8217;m very well oriented with &#8220;typical&#8221; production and post-production photography methods, but was unaware of the additional complexities and tools involved with astrophotography.  </li>
</ul>
<p> </p>
<p><strong>Cons</strong></p>
<p> </p>
<ul>
<li><strong>Casual SLR/DSLR and point-and-shoot users will not be able to suddenly get stunning frames of the night sky.</strong> It turns out that the equipment required to get decent shots requires a level of financial commitment to the niche you aren&#8217;t likely to make unless you have a professional need or really, really, REALLY like looking at celestial bodies. You&#8217;ll probably need a special mount for your camera, or build a jig yourself. I did not want to invest a significant amount of money, so I have been unable to try many of the techniques described.</li>
<li>If you&#8217;re bad at math, you may find some of the technical setup difficult to follow.  </li>
<li>The tools covered are Windows applications. Bah. </li>
</ul>
<p> </p>
<p><strong>Recommendation</strong></p>
<p>Buy if..</p>
<p> </p>
<ol>
<li>You&#8217;re serious about becoming astrophotography and have the cash to pony up for specialty hardware, <em>or</em>&#8230;</li>
<li>You are <em>not</em> planning on trying it for yourself but nevertheless have $20 of curiousity.</li>
</ol>
<p> </p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Book%20Review%3A%20Digital%20Astrophotography%2C%20by%20Stefan%20Seip&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F185"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Book Review: Digital Astrophotography, by Stefan Seip";
		a2a_linkurl="http://www.prestonlee.com/archives/185";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/185/feed</wfw:commentRss>
		</item>
		<item>
		<title>New MacBook Pro Battery</title>
		<link>http://www.prestonlee.com/archives/231</link>
		<comments>http://www.prestonlee.com/archives/231#comments</comments>
		<pubDate>Mon, 05 May 2008 00:22:55 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=231</guid>
		<description><![CDATA[The stock battery on my 1st-generation MacBook Pro has only been providing an hour of power as of late. When I hot-swapped in a fully charged new battery from my local Apple store, I was thrilled with the estimated remaining charge..

I highly doubt it will actually last this long, but one can dream. 

  [...]]]></description>
			<content:encoded><![CDATA[<p>The stock battery on my 1st-generation MacBook Pro has only been providing an hour of power as of late. When I hot-swapped in a fully charged new battery from my local Apple store, I was thrilled with the estimated remaining charge..</p>
<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/05/picture-4.png"><img class="alignnone size-medium wp-image-232" title="picture-4" src="http://www.prestonlee.com/wp-content/uploads/2008/05/picture-4.png" alt="" width="200" height="89" /></a></p>
<p>I highly doubt it will <em>actually</em> last this long, but one can dream. <img src='http://www.prestonlee.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=New%20MacBook%20Pro%20Battery&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F231"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="New MacBook Pro Battery";
		a2a_linkurl="http://www.prestonlee.com/archives/231";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/231/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dear TSA, Check Out The 4th Amendment. Thanks.</title>
		<link>http://www.prestonlee.com/archives/229</link>
		<comments>http://www.prestonlee.com/archives/229#comments</comments>
		<pubDate>Sat, 03 May 2008 16:56:56 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Personal]]></category>

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

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

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

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

		<category><![CDATA[united states]]></category>

		<guid isPermaLink="false">http://www.prestonlee.com/?p=229</guid>
		<description><![CDATA[Just a little food for thought for your next airplane ride. The 4th amendment of the U.S. constitution reads..
The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no warrants shall issue, but upon probable cause, supported by oath or [...]]]></description>
			<content:encoded><![CDATA[<p>Just a little food for thought for your next airplane ride. The 4th amendment of the U.S. constitution reads..</p>
<blockquote><p>The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no warrants shall issue, but upon probable cause, supported by oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized.</p></blockquote>
<p>Sounds reasonable to me. And now, the little note from <a href="http://www.tsa.gov/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.tsa.gov');">the TSA</a> left in my checked bag, neatly tucked between my clean, folded boxer shorts..</p>
<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/05/tsa_notice_of_bag_inspection.jpg"><img class="alignnone size-full wp-image-230" title="tsa_notice_of_bag_inspection" src="http://www.prestonlee.com/wp-content/uploads/2008/05/tsa_notice_of_bag_inspection.jpg" alt="" width="500" height="584" /></a></p>
<p>The full text follows below the line..</p>
<hr />
<div class="c" style="font-size: 1.2em;"><strong>Transportation<br />
Security<br />
Administration</strong> </p>
<hr /><strong>NOTICE OF<br />
BAGGAGE INSPECTION </p>
<hr /></strong></div>
<p>To protect you and your fellow passengers, the Transportation Security Administration (TSA) is required by law* to inspect all checked baggage. As part of the process, some bags are opened and physically inspected. Your bag was among those selected for physical inspection.</p>
<p>During the inspection, your bag and its contents may have been searched for prohibited items. At the completion of the inspection, the contents were returned to your bag.</p>
<p>If the TSA security officer was unable to open your bag for inspection because it was locked, the officer may have been forced to break the locks on your bag. TSA sincerely regrets having to do this, however TSA is not liable for damage to your locks resulting from this necessary security precaution.</p>
<p>For packing tips and suggestions on how to secure your baggage during your next trip, please visit:</p>
<div class="c" style="font-size: 1.2em;"><strong><a href="http://www.tsa.gov/" rel="nofollow" onclick="javascript:pageTracker._trackPageview ('/outbound/www.tsa.gov');">http://www.tsa.gov</a></strong></div>
<p>We appreciate your understanding and cooperation. If you have questions, comments, or concerns, please feel free to contact the TSA Contact Center:</p>
<div class="c"><strong><span style="font-size: 1em;">Phone:866.289.9673 (toll free)<br />
Email:TSA-ContactCenter@dhs.gov</span></strong></div>
<div class="c"><span style="font-size: 0.8em;">*Section 110(b) of the Aviation and Transportation Security Act of 2001,<br />
49 U.S.C. 44901(c)-(e)</span></div>
<div class="c"></div>
<div class="c">Rev. 8-1-2004</div>
<div class="c">Smart Security Saves Time</div>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Dear%20TSA%2C%20Check%20Out%20The%204th%20Amendment.%20Thanks.&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F229"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Dear TSA, Check Out The 4th Amendment. Thanks.";
		a2a_linkurl="http://www.prestonlee.com/archives/229";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/229/feed</wfw:commentRss>
		</item>
		<item>
		<title>Sufficiency In Software Testing</title>
		<link>http://www.prestonlee.com/archives/221</link>
		<comments>http://www.prestonlee.com/archives/221#comments</comments>
		<pubDate>Sat, 12 Apr 2008 02:09:12 +0000</pubDate>
		<dc:creator>preston.lee</dc:creator>
		
		<category><![CDATA[Computer]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.prestonlee.com/?p=221</guid>
		<description><![CDATA[ 

When I was finishing up my B.S. I took a class in embedded software testing. The big assignment was to write the software that controls a single elevator, test the software to our satisfaction and deliver the whole shebang at the end of the semester. The critical lesson I learned from the course was not [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p><a href="http://www.prestonlee.com/wp-content/uploads/2008/04/bug.jpeg"><img class="alignright size-full wp-image-222" style="float: right; border: 10px solid black;" title="bug" src="http://www.prestonlee.com/wp-content/uploads/2008/04/bug.jpeg" alt="" width="100" height="124" /></a></p>
<p>When I was finishing up my B.S. I took a class in embedded software testing. The big assignment was to write the software that controls a single elevator, test the software to our satisfaction and deliver the whole shebang at the end of the semester. The critical lesson I learned from the course was not that the elevator software was difficult to write, but that there are an infinite number of odd and unfortunate events that could happen to any component involved, at any time, and <strong>there is no way to declare with 100% confidence that you have accounted for all possible defects</strong>.</p>
<p>So most <strong>software is not about perfection, but sufficiency</strong>. Everyones wants ultra-high quality, defect free wares, but at some point you must put down the keyboard and declare the product &#8220;sufficient&#8221; for release. Key problems: &#8220;<strong>How do you know when you&#8217;ve done enough testing?&#8221;</strong> And just as important, <strong>&#8220;When is the right time to test?&#8221;</strong></p>
<p>This topic has been a open talking point at <a href="http://openrain.com" onclick="javascript:pageTracker._trackPageview ('/outbound/openrain.com');">OpenRain</a>. <a href="http://marcchung.com" onclick="javascript:pageTracker._trackPageview ('/outbound/marcchung.com');">Marc</a> is a strong proponent of many TDD/BDD principles and goes knife-throwing-freak-show when stuff isn&#8217;t well covered. (Ed. note: possible slight exaggeration&#8230; maybe.) I am also highly concerned with sufficient tests, but prefer a incremental approach and am wary to invest too much effort in automated tests up front for several key reasons.</p>
<ol>
<li><strong>While development is underway, you incur unnecessary overhead to maintain tests developed before design stabilization</strong>. This overhead is inevitable during long-term maintenance, but the last thing I want to do on the project I started yesterday is refactor all my tests because I dropped a single column from the &#8220;users&#8221; table.</li>
<li><strong>When inexperienced developers write tests too early, they oft end up testing the dummy data and underlying framework, not your design</strong>. It is not our job as application-level developers to write test cases for all underlying dependencies, but since that&#8217;s all you have at the beginning of a project, it&#8217;s easy to waste time here.</li>
<li><strong>The benefits of writing tests first to flush out design details is diminished in dynamic languages</strong>. In Java, writing a quick block of pseudo-code to use your interface is a great way to explore your design from an &#8220;external&#8221; perspective. Once you&#8217;ve achieved design clarity, you can easily use your compiler errors to create correct interfaces. Dynamic languages such as Ruby, however, do not offer this compile-time help, lowering the benefit of the technique.  </li>
<li><strong>There&#8217;s no freaking way we&#8217;re checking in code that doesn&#8217;t compile</strong>. Sorry, but if I&#8217;m writing a Java unit test, there&#8217;s no way I&#8217;m putting up with 800 compiler errors (and no autocomplete) over the next day while I generate all my stubs. I don&#8217;t care if TDD says otherwise; it&#8217;s a stupid practice for statically typed languages.</li>
</ol>
<p>Granted, if any of <em>our</em> systems crash, we probably aren&#8217;t going to irreparably harm anything except for my phone that goes flying across the room for ringing at 5AM, but we still have the issue of &#8220;sufficiency&#8221;. For <a href="http://openrain.com" onclick="javascript:pageTracker._trackPageview ('/outbound/openrain.com');">OpenRain</a>&#8217;s Rails-based applications, I&#8217;ve been using the following philosophies on a personal level.</p>
<ul>
<li><strong>Models tests should be implemented first</strong> and as soon as possible. Validation logic and other constraints should be verified up front, as key bugs here will likely effect other code. Add sample data as necessary.</li>
<li><strong>Only functional/integration tests for core use cases should be done early</strong>. Adding too many upfront tests to the yet-to-stabilize design tends to add maintenance liability before it&#8217;s able to pay itself off.</li>
<li><strong>Tests for non-core features should be tested shortly after a brief &#8220;breathing&#8221; period</strong>, wherein others can comment on the design/code before you&#8217;re fully committed to it. Don&#8217;t waste your time with a massive test suite until people stop telling you it sucks.</li>
<li><strong>Avoid complex methods of testing</strong>. Multi-threaded and singleton-based designs have inherent testing complexities, and should be designed out if possible.</li>
<li><strong>Aim for 100% coverage in dynamic languages</strong>. Otherwise you won&#8217;t catch retarded bugs like syntax errors.</li>
<li><strong>Have all known, likely and anticipated issues resulting in a significantly negative state covered by an automated case</strong>. This is, perhaps, the crux of my &#8220;sufficiency&#8221; perspective. You must have some mental benchmark that determines when you are &#8220;done&#8221;. This does not imply that all issues are resolved, only that they are tracked and, hopefully, all the significant ones are fixed.</li>
</ul>
<p>I&#8217;d <em>love</em> to hear your thoughts on practical testing philosophy. Please let me know what you think!</p>
<p> </p>
<p class="addtoany_share_save">
    <a class=".addtoany_share_save" name="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/share_save?sitename=Preston%20Lee&amp;siteurl=http%3A%2F%2Fwww.prestonlee.com%2F&amp;linkname=Sufficiency%20In%20Software%20Testing&amp;linkurl=http%3A%2F%2Fwww.prestonlee.com%2Farchives%2F221"><img src="http://www.prestonlee.com/wp-content/plugins/add-to-any/share_save_256_24.gif" width="256" height="24" border="0" alt="Share/Save/Bookmark"/></a>
    <script type="text/javascript">
		a2a_linkname="Sufficiency In Software Testing";
		a2a_linkurl="http://www.prestonlee.com/archives/221";
						    </script>
    <script type="text/javascript" src="http://static.addtoany.com/menu/page.js"></script>

	</p>]]></content:encoded>
			<wfw:commentRss>http://www.prestonlee.com/archives/221/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
