<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:series="http://unfoldingneurons.com/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Geek Freeq»  | Geek Freeq</title>
	
	<link>http://www.geekfreeq.com</link>
	<description />
	<lastBuildDate>Fri, 13 Aug 2010 03:08:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/GeekFreeq" /><feedburner:info uri="geekfreeq" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Nintendo Flashback</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/-7Xjh2KzcpE/</link>
		<comments>http://www.geekfreeq.com/nintendo-flashback/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 03:00:01 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=470</guid>
		<description><![CDATA[When going through old stuff, it is amazing what you can come across. I found my original Nintendo. I had  wanted to get it out a while back, but wasn&#8217;t sure where everything was  located. This time I found all parts and played just about every game I have. The plan now is [...]]]></description>
			<content:encoded><![CDATA[<p>When going through old stuff, it is amazing what you can come across. I found my original Nintendo. I had  wanted to get it out a while back, but wasn&#8217;t sure where everything was  located. This time I found all parts and played just about every game I have. The plan now is to sell everything but not quite yet. I still have a few more games to play and one or two videos to make of gameplay.  Of course, we had to take some pictures to reinforce our memories.</p>
<p><a href="http://www.amazon.com/gp/product/B000SMMOFO/sr=8-1/qid=1281654207/ref=olp_product_details?tag=geekfreek-self-20&amp;ie=UTF8&amp;me=&amp;qid=1281654207&amp;sr=8-1&amp;seller=" target="_blank">Crystalis</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6849-1.jpg"><img class="alignnone size-full wp-image-474" title="Crystalis (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6849-1.jpg" alt="IMG 6849 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6847-1.jpg"><img class="alignnone size-full wp-image-473" title="Crystalis (in town)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6847-1.jpg" alt="IMG 6847 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6846-1.jpg"><img class="alignnone size-full wp-image-472" title="Crystalis (in store)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6846-1.jpg" alt="IMG 6846 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6840-1.jpg"><img class="alignnone size-full wp-image-471" title="Crystalis (traveling)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6840-1.jpg" alt="IMG 6840 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Tiny-Toon-Adventures-Nintendo-DS/dp/B000MNGI9C/ref=sr_1_1?tag=geekfreeq-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281656184&amp;sr=1-1" target="_blank">Tiny Toon Adventures</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6856-1.jpg"><img class="alignnone size-full wp-image-476" title="Tiny Toon Adventures (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6856-1.jpg" alt="IMG 6856 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6854-1.jpg"><img class="alignnone size-full wp-image-475" title="Tiny Toon (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6854-1.jpg" alt="IMG 6854 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/River-City-Ransom-NES/dp/B0002TQK9E/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281656400&amp;sr=1-1" target="_blank">River City Ransom</a>, <a href="http://www.amazon.com/Pinball-nintendo/dp/B0006TNCV4/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281656665&amp;sr=1-1" target="_blank">Pinball</a>, <a href="http://www.amazon.com/Tetris-nintendo-entertainment-system/dp/B00004SVVT/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281656764&amp;sr=1-1" target="_blank">Tetris</a>, <a href="http://www.amazon.com/Monopoly-nintendo-entertainment-system/dp/B00004SVSH/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281666211&amp;sr=1-1" target="_blank">Monopoly</a>, <a href="http://www.amazon.com/Uninvited-Nes/dp/B0007WOJAS/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281666149&amp;sr=1-1" target="_blank">Uninvited</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6857-1.jpg"><img class="alignnone size-full wp-image-477" title="River City Ransom (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6857-1.jpg" alt="IMG 6857 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6858-1.jpg"><img class="alignnone size-full wp-image-478" title="Pinball (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6858-1.jpg" alt="IMG 6858 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6860-1.jpg"><img class="alignnone size-full wp-image-479" title="Tetris" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6860-1.jpg" alt="IMG 6860 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6899-1.jpg"><img class="alignnone size-full wp-image-507" title="Monopoly (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6899-1.jpg" alt="IMG 6899 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6861-1.jpg"><img class="alignnone size-full wp-image-480" title="Uninvited (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6861-1.jpg" alt="IMG 6861 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Duck-Tales-nintendo-entertainment-system/dp/B00004SVPA/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281657930&amp;sr=1-1" target="_blank">DuckTales</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6865-1.jpg"><img class="alignnone size-full wp-image-483" title="DuckTales (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6865-1.jpg" alt="IMG 6865 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6866-1.jpg"><img class="alignnone size-full wp-image-484" title="DuckTales (where to go)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6866-1.jpg" alt="IMG 6866 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6868-1.jpg"><img class="alignnone size-full wp-image-485" title="DuckTales (Amazon)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6868-1.jpg" alt="IMG 6868 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6869-1.jpg"><img class="alignnone size-full wp-image-486" title="DuckTales (Transylvania)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6869-1.jpg" alt="IMG 6869 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6870-1.jpg"><img class="alignnone size-full wp-image-487" title="DuckTales (African Mines)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6870-1.jpg" alt="IMG 6870 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6871-1.jpg"><img class="alignnone size-full wp-image-488" title="DuckTales (Himalayas)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6871-1.jpg" alt="IMG 6871 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6876-1.jpg"><img class="alignnone size-full wp-image-489" title="DuckTales (Moon)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6876-1.jpg" alt="IMG 6876 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Castle-Dragon-nintendo-entertainment-system/dp/B00004SVXK/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281658091&amp;sr=1-1" target="_blank">Castle of Dragon</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6878-1.jpg"><img class="alignnone size-full wp-image-491" title="Castle of Dragon" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6878-1.jpg" alt="IMG 6878 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6877-1.jpg"><img class="alignnone size-full wp-image-490" title="Castle of Dragon (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6877-1.jpg" alt="IMG 6877 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Donkey-Kong-Classics-NES/dp/B0006TNCWI/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281658968&amp;sr=1-1" target="_blank">Donkey Kong/Donkey Kong Jr.</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6881-1.jpg"><img class="alignnone size-full wp-image-494" title="Donkey Kong (screen 1)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6881-1.jpg" alt="IMG 6881 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6880-1.jpg"><img class="alignnone size-full wp-image-493" title="Donkey Kong (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6880-1.jpg" alt="IMG 6880 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6879-1.jpg"><img class="alignnone size-full wp-image-492" title="Donkey Kong (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6879-1.jpg" alt="IMG 6879 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6882-1.jpg"><img class="alignnone size-full wp-image-495" title="Donkey Kong Jr (screen 1)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6882-1.jpg" alt="IMG 6882 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Adventure-Island-II-Nes/dp/B0006TNCIW/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281659310&amp;sr=1-1" target="_blank">Adventure Island II</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6885-1.jpg"><img class="alignnone size-full wp-image-498" title="Adventure Island (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6885-1.jpg" alt="IMG 6885 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6883-1.jpg"><img class="alignnone size-full wp-image-496" title="Adventure Island (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6883-1.jpg" alt="IMG 6883 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6884-1.jpg"><img class="alignnone size-full wp-image-497" title="Adventure Island (in game)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6884-1.jpg" alt="IMG 6884 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/NINTENDO-NES-GAME-FAXANADU-Entertainment-System/dp/B00081RQ08/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281661761&amp;sr=1-1" target="_blank">Faxanadu</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6898-1.jpg"><img class="alignnone size-full wp-image-506" title="Faxanadu (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6898-1.jpg" alt="IMG 6898 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6897-1.jpg"><img class="alignnone size-full wp-image-505" title="Faxanadu (in town)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6897-1.jpg" alt="IMG 6897 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6896-1.jpg"><img class="alignnone size-full wp-image-504" title="Faxanadu (in store)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6896-1.jpg" alt="IMG 6896 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6895-1.jpg"><img class="alignnone size-full wp-image-503" title="Faxanadu (traveling)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6895-1.jpg" alt="IMG 6895 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Shadowgate-nintendo-entertainment-system/dp/B00004SVUF/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281662144&amp;sr=1-1" target="_blank">Shadowgate</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6863-1.jpg"><img class="alignnone size-full wp-image-482" title="Shadowgate (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6863-1.jpg" alt="IMG 6863 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6945-1.jpg"><img class="alignnone size-full wp-image-514" title="Shadowgate (start)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6945-1.jpg" alt="IMG 6945 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6862-1.jpg"><img class="alignnone size-full wp-image-481" title="Shadowgate (choose wisely)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6862-1.jpg" alt="IMG 6862 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6947-1.jpg"><img class="alignnone size-full wp-image-515" title="Shadowgate (end)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6947-1.jpg" alt="IMG 6947 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Where-Carmen-Sandiego-nintendo-entertainment-system/dp/B00004SVWR/ref=sr_1_2?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281663508&amp;sr=1-2" target="_blank">Where in time is Carmen Sandiego?</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6892-1.jpg"><img class="alignnone size-full wp-image-502" title="Carmen Sandiego (investigating)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6892-1.jpg" alt="IMG 6892 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6888-1.jpg"><img class="alignnone size-full wp-image-501" title="Carmen Sandiego (captured criminal)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6888-1.jpg" alt="IMG 6888 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Maniac-Mansion-nintendo-entertainment-system/dp/B00004SVS0/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281663677&amp;sr=1-1" target="_blank">Maniac Mansion</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6887-1.jpg"><img class="alignnone size-full wp-image-500" title="Maniac Mansion (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6887-1.jpg" alt="IMG 6887 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6886-1.jpg"><img class="alignnone size-full wp-image-499" title="Maniac Mansion (intro)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6886-1.jpg" alt="IMG 6886 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Dragon-Warrior-III-nintendo-entertainment-system/dp/B00004SVP7/ref=sr_1_2?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281664184&amp;sr=1-2" target="_blank">Dragon Warrior III</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6944-1.jpg"><img class="alignnone size-full wp-image-513" title="Dragon Warrior III (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6944-1.jpg" alt="IMG 6944 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6943-1.jpg"><img class="alignnone size-full wp-image-512" title="DWIII (character stats)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6943-1.jpg" alt="IMG 6943 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6942-1.jpg"><img class="alignnone size-full wp-image-511" title="DWIII (traveling)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6942-1.jpg" alt="IMG 6942 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6938-1.jpg"><img class="alignnone size-full wp-image-510" title="DWIII (in town)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6938-1.jpg" alt="IMG 6938 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6937-1.jpg"><img class="alignnone size-full wp-image-509" title="DWIII (characters I named)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6937-1.jpg" alt="IMG 6937 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6935-1.jpg"><img class="alignnone size-full wp-image-508" title="DWIII (battle)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6935-1.jpg" alt="IMG 6935 1 Nintendo Flashback" width="240" height="180" /></a></p>
<p><a href="http://www.amazon.com/Dragon-Warrior-IV-nintendo-entertainment-system/dp/B00004SVP8/ref=sr_1_1?tag=geekfreek-20&amp;s=videogames&amp;ie=UTF8&amp;qid=1281664496&amp;sr=1-1" target="_blank">Dragon Warrior IV</a></p>
<p><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6948-1.jpg"><img class="alignnone size-full wp-image-516" title="DWIV (title screen)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6948-1.jpg" alt="IMG 6948 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6953-1.jpg"><img class="alignnone size-full wp-image-519" title="DCIV (in town)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6953-1.jpg" alt="IMG 6953 1 Nintendo Flashback" width="240" height="180" /></a><a href="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6950-1.jpg"><img class="alignnone size-full wp-image-517" title="DWIV (character stats, traveling)" src="http://www.geekfreeq.com/wp-content/uploads/2010/08/IMG_6950-1.jpg" alt="IMG 6950 1 Nintendo Flashback" width="240" height="180" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=-7Xjh2KzcpE:RlyeTuLKizQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=-7Xjh2KzcpE:RlyeTuLKizQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=-7Xjh2KzcpE:RlyeTuLKizQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/-7Xjh2KzcpE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/nintendo-flashback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/nintendo-flashback/</feedburner:origLink></item>
		<item>
		<title>Convert a Value to Nullable</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/6W9Tw8Rmg3c/</link>
		<comments>http://www.geekfreeq.com/convert-nullable/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 17:44:39 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Just Code]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=469</guid>
		<description><![CDATA[I&#8217;ve decided to start a new series-like set of articles on highly reusable code snippets. I write a lot of these types of snippets and figure it&#8217;s time to share. Kicking off will be the ConvertToNullable function.
Background
I despise boilerplate code in general, but I really hate writing the same code over and over to check [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to start a new series-like set of articles on highly reusable code snippets. I write a lot of these types of snippets and figure it&#8217;s time to share. Kicking off will be the <em>ConvertToNullable</em> function.</p>
<h3>Background</h3>
<p>I despise boilerplate code in general, but I <strong>really </strong>hate writing the same code over and over to check if a variable equals some &#8220;default&#8221; value and acting on that case. That&#8217;s why I wrote <em>SafeDataReader</em> (article to come) years ago. <em>SafeDataReader</em> is constructed with a <em>DbDataReader </em>and adds a ton of new <em>Get</em> method that let you easily and safely access fields on the underlying data reader with strong typing.</p>
<p>One of the key benefits of <em>SafeDataReader </em>is that every <em>Get </em>method has an override for supplying a default value. If you use this version of a method, it will return your default value if the field is null (DBNull.Value).</p>
<p>Unfortunately, I wrote <em>SafeDataReader </em>before the much needed <em>Nullable </em>type was introduced to .NET. I also have not taken the time to go back and update it to support nullables. That leads us to the &#8220;dilemma&#8221; behind today&#8217;s code snippet.</p>
<h3>The Problem</h3>
<p>Have you ever written something like the following?</p>
<pre name="code" class="c#">DateTime? someDate;
DateTime someTemporaryDate = GetSomeDate();
if (someTemporaryDate == DateTime.MinValue) {
  someDate = null;
} else {
  someDate = someTemporaryDate;
}
</pre>
<p>The <em>GetSomeDate </em>function may be legacy code, but it only returns <em>DateTime </em>(or another value type). However, you write code for the new millennium and want to use nullables for a clearer intent of the unknown value. Regardless, this type of code block is a PITA that bleeds unreadability.</p>
<p>Going back to my <em>SafeDataReader </em>example, here is some code that is nice and tidy until the <em>DateTime </em>value needs converting to a <em>Nullable&lt;DateTime&gt;</em>.</p>
<pre name="code" class="c#">var setting = new Setting {
  Title = reader.GetString("Title"),
  Quantity = reader.GetInt32("Quantity", 1),
  BeginDate = reader.GetDateTime("BeginDate"),
  EndDate = (reader.IsDBNull("EndDate")
      ? (DateTime?)null
      : reader.GetDateTime("EndDate"))
};
</pre>
<p>Ugh! I hate that bit with the <em>EndDate</em>. Since <em>Setting.EndDate</em> is a nullable <em>DateTime</em>, I have to jump through ugly hoops to handle a null just because my <em>GetDateTime </em>method doesn&#8217;t yet support nullables.</p>
<h3>The Reusable Solution</h3>
<p>Nothing beats a generic reusable solution to such a problem. Let&#8217;s see it!</p>
<pre name="code" class="c#">protected static T? ConvertToNullable&lt;T&gt;(T value, T defaultValue)
  where T : struct {
  if (value.Equals(defaultValue)) {
    return null;
  }
  return value;
}

protected static T? ConvertToNullable&lt;T&gt;(T value) where T : struct {
  return ConvertToNullable(value, default(T));
}
</pre>
<p>Now, we have something that will clean-up those previous examples.</p>
<pre name="code" class="c#">DateTime? someDate = ConvertToNullable(GetSomeDate());
</pre>
<pre name="code" class="c#">var setting = new Setting {
  Title = reader.GetString("Title"),
  Quantity = reader.GetInt32("Quantity", 1),
  BeginDate = reader.GetDateTime("BeginDate"),
  EndDate = ConvertToNullable((reader.GetDateTime("EndDate"))
};
</pre>
<p>That is <strong>much</strong> better! Enjoy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=6W9Tw8Rmg3c:aEl8cKSvXTA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=6W9Tw8Rmg3c:aEl8cKSvXTA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=6W9Tw8Rmg3c:aEl8cKSvXTA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/6W9Tw8Rmg3c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/convert-nullable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/convert-nullable/</feedburner:origLink></item>
		<item>
		<title>Reece Grenades</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/wbd2wW3myDM/</link>
		<comments>http://www.geekfreeq.com/reece-grenades/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 20:11:03 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=466</guid>
		<description><![CDATA[To all of those wives and girlfriends of gamer guys out there&#8230;
Next time your guy is playing one of the first person shooters, grab some mini Reece cups or some treat that is comparable and throw it toward him &#8211; not at him but in the general vicinity of where he might be able to [...]]]></description>
			<content:encoded><![CDATA[<p>To all of those wives and girlfriends of gamer guys out there&#8230;</p>
<p>Next time your guy is playing one of the first person shooters, grab some mini Reece cups or some treat that is comparable and throw it toward him &#8211; not at him but in the general vicinity of where he might be able to catch the item and it has to be in his field of view. See how good his reflexes really are and not just in the game. This could bring some real live effects to his in-game action. Just beware since you might not know how he might react &#8211; gauge it on his normal personality to make sure he wouldn&#8217;t react angrily.</p>
<p>I just threw my husband two mini Reece cups while he was playing Uncharted 2 and he caught one in mid-air and the other dropped. He joked that it felt like he had grenades thrown at him.</p>
<p>Just a little fun!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=wbd2wW3myDM:OGhQ5b77Gig:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=wbd2wW3myDM:OGhQ5b77Gig:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=wbd2wW3myDM:OGhQ5b77Gig:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/wbd2wW3myDM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/reece-grenades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/reece-grenades/</feedburner:origLink></item>
		<item>
		<title>SecuritySwitch Grows Up on Google Code</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/gp0EVbv8zxQ/</link>
		<comments>http://www.geekfreeq.com/securityswitch-grows-google-code/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 03:16:10 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[products]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=465</guid>
		<description><![CDATA[Edit: Due to a trademark infringement, this open source project will now  be named SecuritySwitch. What a huge PITA it was to migrate to a new project on Google Code! Since you cannot rename a project, I had to create a new one and move everything over to it. I so enjoyed blowing 2 [...]]]></description>
			<content:encoded><![CDATA[<div class="edit"><strong>Edit</strong>: Due to a trademark infringement, this open source project will now  be named SecuritySwitch. What a huge PITA it was to migrate to a new project on Google Code! Since you cannot rename a project, I had to create a new one and move everything over to it. I so enjoyed blowing 2 hours of my day off on Good Friday.</div>
<p>I recently <a href="/webpagesecurity-becomes-secureswitch/">posted about an update to my WebPageSecurity module</a> project to the newly named <em>SecuritySwitch</em>. One of the best ways to ramp up coding on the project again is to get it into a public code repository.</p>
<h3>Get with Git?</h3>
<p>I thought about using <a href="http://git-scm.com/" target="_blank">Git</a> on <a href="http://github.com/" target="_blank">GitHub</a>, but I want to get moving on this and that would not be the case if I had to fumble through learning Git now. Although, I do really like the concept of a <a href="http://en.wikipedia.org/wiki/Distributed_revision_control" target="_blank">distributed version control system (DVCS)</a>. Instead, I will stick with <a href="http://subversion.apache.org/" target="_blank">Subversion (SVN)</a> for now.</p>
<h3>Google Code</h3>
<p>That lands the project in the capable arms of <a href="http://code.google.com/" target="_blank">Google Code</a>, which I find to be a very nice <a href="http://code.google.com/p/securityswitch/" target="_blank">new home for SecuritySwitch</a>. I will likely have a dedicated page here on GeekFreeq for SecuritySwitch that refers visitors to the project on Google Code, and/or I will just pipe updates from the project site here via RSS.</p>
<p>Anyway, this is the first stage of a &#8220;grown-up&#8221; SecuritySwitch.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=gp0EVbv8zxQ:xDHY0ZAGjRk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=gp0EVbv8zxQ:xDHY0ZAGjRk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=gp0EVbv8zxQ:xDHY0ZAGjRk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/gp0EVbv8zxQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/securityswitch-grows-google-code/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/securityswitch-grows-google-code/</feedburner:origLink></item>
		<item>
		<title>WebPageSecurity becomes SecuritySwitch</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/1hadd5666g4/</link>
		<comments>http://www.geekfreeq.com/webpagesecurity-becomes-securityswitch/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 23:13:40 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[products]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=463</guid>
		<description><![CDATA[Edit: Due to a trademark infringement, this open source project will now be named SecuritySwitch. Feel free to read the comment posted by the holder of the trademark on the name I originally planned to use. It was a polite enough message. I think there may be ground for me to stand on with the [...]]]></description>
			<content:encoded><![CDATA[<div class="edit"><strong>Edit</strong>: Due to a trademark infringement, this open source project will now be named SecuritySwitch. Feel free to read the comment posted by the holder of the trademark on the name I originally planned to use. It was a polite enough message. I think there may be ground for me to stand on with the first name, but I don&#8217;t care to go to court over the name of a project that is free for anyone to download.</div>
<p>After a bit of a struggle supporting my <a href="http://www.codeproject.com/KB/web-security/WebPageSecurity_v2.aspx" target="_blank">WebPageSecurity module</a> on Code Project, I&#8217;ve decided to put some quality effort into the project in the very near future. One of the first things that needed attention was the name.</p>
<h3>What&#8217;s in a Name?</h3>
<p>Could I have named it something more generic all those years ago? Perhaps, but not likely. After a few minutes of running through some of the key nouns and verbs that describe the project&#8217;s purpose, it will now be known as <em>SecuritySwitch</em>.</p>
<h3>Educational Value vs. Quality Functionality</h3>
<p>Another change to the project will be the maintenance of the dual source code languages. Since I originally started the module, a distinct project for C# and VB.NET have been maintained. While this was great for the educational aspect of the article and accompanying code, it is not ideal for a quality &#8220;product&#8221;.</p>
<p>After some consideration, I decided to drop the VB.NET version of the source code in favor of a single project written in C#. An immediate benefit to the community of this decision is faster releases.</p>
<h3>What&#8217;s Next?</h3>
<p>All of this change should be balanced with something to make it all worth while. I intend on stopping development on the 2.x version of the module for .NET 1.1 where it is now. Of course, I&#8217;ll fix any bugs, but no new features will likely be added. Version 3.x for .NET 2.0 will continue until version 4.0. That&#8217;s when I will add some of the new features in the queue and enable full support for ASP.NET MVC as well.</p>
<p>Keep checking back for more progress on this project.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=1hadd5666g4:cbU_nxbuPBI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=1hadd5666g4:cbU_nxbuPBI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=1hadd5666g4:cbU_nxbuPBI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/1hadd5666g4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/webpagesecurity-becomes-securityswitch/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/webpagesecurity-becomes-securityswitch/</feedburner:origLink></item>
		<item>
		<title>Pitfall: The Big Adventure on the Wii</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/u1hEx9LcsOg/</link>
		<comments>http://www.geekfreeq.com/pitfall-big-adventure-wii/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 02:26:28 +0000</pubDate>
		<dc:creator>Chrissy</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Wii]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=461</guid>
		<description><![CDATA[For Christmas 2008, we received Pitfall: The Big Adventure for the Wii. We are game junkies and get a bunch most Christmases ranging in lots of different skill sets. We were excited to check this one out since we had played the original Pitfall on Atari and Intellivision.
Sometimes it takes us a whole year to [...]]]></description>
			<content:encoded><![CDATA[<p>For Christmas 2008, we received <a href="http://www.amazon.com/Pitfall-Big-Adventure-Nintendo-Wii/dp/B0018RWMSM/ref=sr_1_1?tag=ventaur-self-20&amp;ie=UTF8&amp;s=videogames&amp;qid=1262032457&amp;sr=1-1" target="_blank">Pitfall: The Big Adventure</a> for the Wii. We are game junkies and get a bunch most Christmases ranging in lots of different skill sets. We were excited to check this one out since we had played the original Pitfall on Atari and Intellivision.</p>
<p>Sometimes it takes us a whole year to play all of the games we get since we do have lives outside of gaming. Pitfall was one of those games we didn&#8217;t get to until early December 2009. As we were playing it and getting to the point of finding more idols so we could purchase more items from the shamans, we began to search online for a list of the locations of the idols to speed up the process. It wasn&#8217;t that we were unable to run around in the game and search for them, but it is just a matter of time and we didn&#8217;t want to waste it looking and looking in the game. So, on I looked online. I couldn&#8217;t find much of anything in the way of guides for Pitfall: The Big Adventure. I did find a lot of questions and answers but no true guides with people who could actually type full sentences and know how to spell.</p>
<p>I finally found a guide but it was under the name Pitfall: The Lost Expedition. It is one of my favorite sites for game guides: <a href="http://www.gamespy.com/" target="_blank">Gamespy powered by IGN</a>. As I was looking at the pictures of the locations of the idols, I saw places and names I recognized. I then started to search for what was going on &#8211; two games with similar places, names and pictures? &#8211; there must be something odd going on.</p>
<p>After only a few minutes of researching, I found out that Pitfall: The Lost Expedition was released on the GameCube, PS2, Xbox, GameBoy Advance, and PC back in 2004 and has now been discontinued by the manufacturer. After the Wii came out, it was decided to re-release the same Pitfall game but under the new name Pitfall: The Big Adventure on the Wii in 2008. They changed the artwork on the box cover to make it look different but the game is the same other than it has controls that work with the motion of a Wii remote and nunchuk.</p>
<p>I never played the game released in 2004. The re-release has been a fun game that has its frustrating moments due to poor controls at times and a camera that has a mind of its own at the worst times. The graphics (especially) and other parts of the game make a lot more sense now that I know this game, released in 2008, was actually one released in 2004. There is a very cool bonus where you can play the original Pitfall.</p>
<p>So, Pitfall: The Big Adventure is Pitfall: The Lost Expedition. When you are looking for hints or where to find something for Pitfall: Big Adventure just look for Pitfall: The Lost Expedition and you will find tons of help!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=u1hEx9LcsOg:SR5Yb9ADBf8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=u1hEx9LcsOg:SR5Yb9ADBf8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=u1hEx9LcsOg:SR5Yb9ADBf8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/u1hEx9LcsOg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/pitfall-big-adventure-wii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/pitfall-big-adventure-wii/</feedburner:origLink></item>
		<item>
		<title>How To: Send a Bulk E-mail Considerately</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/LYMvI1-M43M/</link>
		<comments>http://www.geekfreeq.com/send-bulk-email-considerately/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 16:19:56 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=459</guid>
		<description><![CDATA[If you send bulk e-mails (i.e. messages to several contacts), you really should be considerate of your recipients. While you know (hopefully) all of the contacts in the &#8220;To&#8221; list of the message you are about to send, there&#8217;s a good chance that all of them do not know each other.
A considerate bulk mail sender [...]]]></description>
			<content:encoded><![CDATA[<p>If you send bulk e-mails (i.e. messages to several contacts), you <strong>really </strong>should be considerate of your recipients. While you know (hopefully) all of the contacts in the &#8220;To&#8221; list of the message you are about to send, there&#8217;s a good chance that all of them do not know each other.</p>
<p>A considerate bulk mail sender (that&#8217;s you), should respect your contacts&#8217; privacy. Listing all of your receiving contacts in the &#8220;To&#8221; field reveals their e-mail addresses to each other. That could be thought of as plain rude! In addition, some of your friends and/or family will likely have an e-mail program that collects any addresses from incoming messages. That means, when they forward that wonderful e-mail to their entire address book, demanding that it be forwarded on to 15 others, everyone that you sent your message to will get that person&#8217;s bulk messages now. <strong>Very uncool!</strong></p>
<p>Luckily, there is an extremely easy way to be respectful of your list of e-mail buddies.</p>
<p><span id="more-459"></span></p>
<h3>To To, or to BCC</h3>
<p>Instead of adding all the recipients of your choice message in the &#8220;To&#8221; field, add them to the &#8220;Bcc&#8221; field instead. Then, put your own e-mail address in the &#8220;To&#8221; field. Doing so, will prevent the recipients from seeing the e-mail addresses of each other. It will appear as if you sent the message to yourself to everyone.</p>
<h3>A Step Further</h3>
<p>The above technique can be taken a step further to add more polish/professionalism to your bulk mailings. Create a new contact in your e-mail program that is named &#8220;Undisclosed Recipients&#8221; with your e-mail address. After this simple step, you will still add your recipients to the &#8220;Bcc&#8221; field, but you can set the &#8220;To&#8221; field to the new contact.</p>
<p>The end result of this approach is the same. However, most of your recipients will see that the e-mail message was sent to &#8220;Undisclosed Recipients&#8221;. Believe it or not, this just feels more viable to most people.</p>
<p>Happy e-mailing!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=LYMvI1-M43M:4UQgPQAWG3k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=LYMvI1-M43M:4UQgPQAWG3k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=LYMvI1-M43M:4UQgPQAWG3k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/LYMvI1-M43M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/send-bulk-email-considerately/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/send-bulk-email-considerately/</feedburner:origLink></item>
		<item>
		<title>ASP.NET “Remember Me” Option with Forms Authentication Not Working?</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/f3bdwDJLUGc/</link>
		<comments>http://www.geekfreeq.com/aspnet-remember-me-option-forms-authentication-not-working/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 17:23:48 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=457</guid>
		<description><![CDATA[So, you&#8217;ve set the timeout value for forms authentication to a fairly large value, yet checking the &#8220;remember me&#8221; check box on the Login control still does not persist your users&#8217; authentication, even after a fairly short period of inactivity.
&#60;system.web&#62;
    ...
    &#60;authentication mode="Forms"&#62;
        &#60;forms timeout="10080"/&#62;
    &#60;/authentication&#62;
    ...
&#60;/system.web&#62;
Don&#8217;t spend hours [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 208px"><img title="ASP.NET Login Control" src="http://farm3.static.flickr.com/2493/4025759133_b6c35381b3_o.png" alt="ASP.NET Login Control" width="198" height="108" /><p class="wp-caption-text">ASP.NET Login Control</p></div>
<p>So, you&#8217;ve set the <em>timeout </em>value for forms authentication to a fairly large value, yet checking the &#8220;remember me&#8221; check box on the Login control still does not persist your users&#8217; authentication, even after a fairly short period of inactivity.</p>
<pre class="xml">&lt;system.web&gt;
    ...
    &lt;authentication mode="Forms"&gt;
        &lt;forms timeout="10080"/&gt;
    &lt;/authentication&gt;
    ...
&lt;/system.web&gt;</pre>
<p>Don&#8217;t spend hours trying to figure out why this, <em>seemingly</em>, basic functionality doesn&#8217;t perform as it should. The solution to this problem is very simple, albeit somewhat obscure.</p>
<p><span id="more-457"></span></p>
<h3>Encryption is the Key</h3>
<p>To make the &#8220;remember me&#8221; check box actually obey your users when they check it, you need to ensure that a static <strong>machine key</strong> is added to your website&#8217;s web.config file. That&#8217;s it! <strong>Really.</strong></p>
<pre class="xml">&lt;system.web&gt;
    ...
    &lt;machineKey
        validationKey="xxxxxxxxx"
        decryptionKey="xxx"
        validation="SHA1" decryption="AES"/&gt;
    ...
&lt;/system.web&gt;</pre>
<h4>Generate Random Keys</h4>
<p>Generate your own keys by using <a href="http://www.developmentnow.com/articles/machinekey_generator.aspx" target="_blank">one of the machineKey generator websites</a> available. After using a generator, copy and paste the <em>machineKey </em>element inside the <em>system.web</em> element of your web.config.</p>
<p>The &#8220;remember me&#8221; option for authentication should start working as expected.</p>
<h3>Why this Works</h3>
<p>When a user authenticates on an ASP.NET website with forms authentication enabled, an authentication ticket is generated for that user. This ticket is then stored inside a cookie in the user&#8217;s browser. The cookie&#8217;s purpose is to allow the forms authentication system to recognize subsequent requests by the same user as valid/authenticated.</p>
<p>Of course, this functionality works without issue even before the solution above. When a user leaves the &#8220;remember me&#8221; box unchecked, a session cookie is stored in their browser. Checking that box, sends a persistent cookie back to the browser instead. This persistent cookie is set to expire based on the timeout value mentioned earlier (i.e. it expires approximately timeout minutes from the current date/time). The persistent cookie is also created without issue. A quick look at your cookies during a test should prove this.</p>
<p>So, if the persistent cookie is getting created properly, why are users being forced to login again after only short periods of inactivity? Well, the authentication ticket is <strong>encrypted </strong>before being sent to the browser as a cookie. This is done to secure the details of the ticket and prevent tampering. However, the ticket must be <strong>decrypted </strong>by the forms authentication system on each request that follows.</p>
<h4>Process Recycling</h4>
<p>When the ASP.NET process recycles, the website&#8217;s validation and decryption keys may be randomly re-generated. In fact, the default behavior is to auto-generated these keys per application. If the keys are changed, <strong>those tickets cannot be decrypted</strong>. When the forms authentication system fails to decrypt a ticket from the user&#8217;s cookie, it sends them along to the login page for validation. No amount of checking the &#8220;remember me&#8221; box will help this situation; specifying your own keys in web.config will.</p>
<h4>Causes of Process Recycling</h4>
<p>There are a number of causes for the ASP.NET process getting recycled. Here just a few.</p>
<ul>
<li>IIS determines certain conditions were met</li>
<li>any change in the bin directory of the website</li>
<li>changes to the physical path of the virtual application or website</li>
<li>a sub-directory of the website is deleted</li>
<li>changes to Global.asax, web.config, or machine.config</li>
<li>policy changes</li>
<li>the count threshold of re-compilations is exceeded (<span style="font-family: Tahoma;"><em>numRecompilesBeforeAppRestart </em>on the <em>compilation </em>element)</span></li>
</ul>
<p>If your website is hosted on a shared server, odds are the process for your application will get recycled more often than on a dedicated server. Hosts set the thresholds for recycling pretty low for shared hosing servers to account for poor programming.</p>
<h3>Final Recommendations</h3>
<p>I almost always recommend that one of the first things a developer does with a new ASP.NET website is generate a random <em>machineKey </em>and add to the web.config. This will likely save you many headaches in the future. By the way, this step is absolutely <strong>necessary </strong>for Web farms/gardens.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=f3bdwDJLUGc:qavj8IgqyLE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=f3bdwDJLUGc:qavj8IgqyLE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=f3bdwDJLUGc:qavj8IgqyLE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/f3bdwDJLUGc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/aspnet-remember-me-option-forms-authentication-not-working/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/aspnet-remember-me-option-forms-authentication-not-working/</feedburner:origLink></item>
		<item>
		<title>SVN, the Way of the Tortoise</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/3AciFsIcxrg/</link>
		<comments>http://www.geekfreeq.com/svn-tortoise/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 19:29:16 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Desktop Development]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=455</guid>
		<description><![CDATA[Although, Subversion (SVN) is not new, it is still one of the most widely used version control systems (VCS) available. SVN is a tool that allows users to track the changes of files. Yes, it&#8217;s that simple.
Interfacing Your Demons
Like many version control systems, SVN utilizes a command-line interface (CLI) to interact with users. Some users [...]]]></description>
			<content:encoded><![CDATA[<p>Although, <a href="http://subversion.tigris.org/" target="_blank">Subversion</a> (SVN) is not new, it is still one of the most widely used <a href="http://en.wikipedia.org/wiki/Revision_control" target="_blank">version control systems</a> (VCS) available. SVN is a tool that allows users to track the changes of files. Yes, it&#8217;s that simple.</p>
<h3>Interfacing Your Demons</h3>
<p>Like many version control systems, SVN utilizes a <a href="http://en.wikipedia.org/wiki/Command_line" target="_blank">command-line interface</a> (CLI) to interact with users. Some users frown upon the command-line; especially, Windows users. However, I want to point out how necessary it is that these tools use the command-line.</p>
<p>After you use a version control system for a good length of time, you should notice that there are routines you follow over and over again. Perhaps you lock certain files before editing them to prevent conflicts with other potential editors on your team. Maybe you always commit your changes when you build a project for release, or when you shut down your computer for the evening. The point is, these are things that can be automated with small scripts through build events or even Windows Task Scheduler. Having a command-line tool is essential to such automation.</p>
<p>On the other hand, there are many times you will want to issue commands to SVN on-demand. A nice <a href="http://en.wikipedia.org/wiki/Graphical_user_interface" target="_blank">graphical user interface</a> can make things much easier and faster for those tasks. Enter <a href="http://tortoisesvn.net/" target="_blank">TortoiseSVN</a>.</p>
<p><span id="more-455"></span></p>
<h3>TortoiseSVN and the Shell</h3>
<p>I like to think that the tortoise stands for something meaningful. Granted SVN was created as an alternative to CVS, which had TortoiseCVS. For me, it&#8217;s all about the shell!</p>
<div class="wp-caption alignleft" style="width: 172px"><img title="TortoiseSVN Context Menu" src="http://farm3.static.flickr.com/2548/4011600230_8596853849_o.gif" alt="TortoiseSVN Shell Context Menu" width="162" height="64" /><p class="wp-caption-text">TortoiseSVN Context Menu</p></div>
<p>TortoiseSVN integrates with the <a href="http://en.wikipedia.org/wiki/Windows_shell" target="_blank">Windows shell</a>. That means a <strong>lot </strong>in the way of usability. When you right-click a file from <em>anywhere </em>in Windows, you will see contextual items on the menu for TortoiseSVN commands. Personally, I think this gives much more value to the program than those that just mingle with <a href="http://en.wikipedia.org/wiki/Integrated_development_environment" target="_blank">integrated development environments</a> (IDEs). I use SVN to control more than just source code. In fact, I consider my other project assets to be just as important (i.e. original design images, documentation, research, etc.). Integration with the shell means I can open Windows Explorer and start managing my files with TortoiseSVN.</p>
<h3>Repositories</h3>
<p>Repositories are where your files, and their many versions, are stored. There are many theories on how to organize your repositories, from creating one for each project to creating one for everything. I prefer creating a repository for each solution I am working on. That is, I create a repository for every application, website, or stand-alone library that I work on. My reasoning stems from the fact that I may need to invite new team members into the development process for a given application or website, and I want to be able to ensure they only have access to what they need. It also makes it very easy to move a repository to a remote, shared location in the future.</p>
<p>I do, however, store <strong>all</strong> of my repositories in a single directory on the computer chosen to host them. This makes for a very clean and trivial backup structure. I can easily backup all of my repositories by simply pointing to this root directory. I name mine, &#8220;SVNRepositories&#8221;. Aren&#8217;t I clever?</p>
<h4>Use Templates</h4>
<p>As a programmer and architect, I am a <strong>huge </strong>fan of templates. They make things so much easier. Creating stuff from templates is quicker and less riddled with mistakes. The idea of using templates to create your repositories may seem too trivial to bother with, but it does speed things up and ensures that you stick to a naming convention. Many recommend the following directory structure for repositories.</p>
<ul class="Folders">
<li>SVN Structure
<ul>
<li>branches</li>
<li>tags</li>
<li>trunk</li>
</ul>
</li>
</ul>
<p>The <strong>trunk </strong>is where your primary development line will be maintained. You will commit most of your changes to the trunk. You will most often update your working directory from the trunk (more on this soon). The trunk is the latest official version of your solution. There are conflicting views on exactly how to use the trunk, but this is the most widely accepted usage of it.</p>
<p><strong>Branches </strong>are there for you to try new things and to experiment with the solution/project. Create a branch when you do not want to mess up the trunk with possible breaking changes. Branching is most common when a new feature is being developed that will take some time to implement. You would create a branch from the trunk and begin working on the branch; committing and updating to and from the branch instead of the trunk. Once the feature is complete, the branch should be merged back into the trunk and become part of the overall solution.</p>
<p><em>Note: It is good practice to merge the trunk into a developing branch every so often, so the branch can benefit from any changes made on the trunk.</em></p>
<p><strong>Tags </strong>are ideal for marking milestones for the solution/project. It&#8217;s a good idea to &#8220;tag&#8221; each release of the software, documentation, or the like. This allows you to time travel back to a release at a future point if you need to troubleshoot an issue with that old release, or to revert back to a release if things go awry later. For example, a diet-tracking website I am constantly improving upon will soon be sent to a buddy of mine for his personal use. Each time I send him an update, I will tag that release so I can instruct SVN to find the difference between then and now in order to send him a patch.</p>
<p>Create a directory on your computer that has the 3 sub-directories above in it. The sub-directories should be empty. Name the parent directory as your template structure so that you can find it later. I named mine, &#8220;SVN Structure&#8221;, and have it in a folder named, &#8220;Templates&#8221;.</p>
<h4>New Repositories</h4>
<p>Follow these steps to create a new repository that is consistent with the best practices discussed above.</p>
<div class="wp-caption alignright" style="width: 168px"><img title="New Repositories" src="http://farm3.static.flickr.com/2503/4011737526_2ec93ce208_o.gif" alt="TortoiseSVN - New Repositories" width="158" height="159" /><p class="wp-caption-text">New Repositories</p></div>
<ol>
<li>Create a new sub-directory in your SVNRepositories directory. Make sure you give it a meaningful name for the project/solution it will manage.</li>
<li>Right-click the new sub-directory, hover your mouse over the TortoiseSVN context menu, and click &#8220;Create repository here&#8221;.</li>
<li>You should see a confirmation message that the repository was successfully created.</li>
<li>Navigate to your &#8220;SVN Structure&#8221; directory template, right-click it, hover your mouse over the TortoiseSVN context menu, and click &#8220;Import&#8230;&#8221;.</li>
<li>Enter/select the URL of the new repository you just created. If the repository is on your network, you will use a URL in the form of <a class="linkification-ext" title="Linkification: file:///X:/SVNRepositories/RepositoryName" href="file:///X:/SVNRepositories/RepositoryName">file:///X:/SVNRepositories/RepositoryName</a>. Otherwise, use a valid Web URL for the remote location.</li>
<li>Supply a nice message for the import. I recommend, &#8220;Structure import.&#8221;</li>
<li>Click OK.</li>
<li>Enjoy the log displayed that informs you of the successful addition of the 3 directories and click OK.</li>
</ol>
<p>Feel free to right-click on any folder and choose the &#8220;Repo-browser&#8221; item from the TortoiseSVN context menu. After entering/selecting the URL to your repository, you should see the new structure eagerly awaiting files to manage.</p>
<h3>Working Directories</h3>
<p>A working directory is where you make the changes to your files. These are standard directories that have hidden SVN sub-directories tucked away for change tracking and property management. The presence of these hidden directories is what enables the icon overlays and most commands on the TortoiseSVN context menu.</p>
<p>You can have multiple working directories; even for the same repository. In fact, if you are working on the trunk <strong>and</strong> a branch of your project/solution, you will likely want to have separate working directories, as opposed to switching back and forth between each. Simply, create another directory separate from your current working directory, and checkout the other branch or tag to the new location. Then, you can work in both directories and update/commit to the appropriate trunk/branch/tag for each.</p>
<h4>Setting Up in a Clean Working Directory</h4>
<p>Consider setting up version control <em>before </em>you begin working on a new project. It will make setup easier, and it will ensure that you can start committing changes immediately.</p>
<p>Setting up in a clean working directory is a cinch! After you have created your repository from the structure template provided earlier, follow these steps.</p>
<div class="wp-caption alignright" style="width: 163px"><img title="Checkout" src="http://farm4.static.flickr.com/3522/4011647984_f83956c6f8_o.gif" alt="TortoiseSVN - Checkout" width="153" height="46" /><p class="wp-caption-text">Checkout</p></div>
<ol>
<li>Create a new directory where you would like to start working on your project/solution (e.g. C:\My Documents\My Projects\New Project).</li>
<li>Right-click the new directory and click &#8220;SVN Checkout&#8230;&#8221;.</li>
<li>Enter/select the URL of your new repository.</li>
<li>Append &#8220;/trunk&#8221; to the end of your repository URL (i.e. <a class="linkification-ext" title="Linkification: file:///X:/SVNRepositories/RepositoryName/trunk" href="file:///X:/SVNRepositories/RepositoryName/trunk">file:///X:/SVNRepositories/RepositoryName/trunk</a>).</li>
<li>Ensure that the checkout directory is set to the one you just right-clicked.</li>
<li>Keep the checkout depth set to &#8220;Fully recursive&#8221;.</li>
<li>Make sure the &#8220;HEAD revision&#8221; is selected.</li>
<li>Click OK.</li>
<li>Enjoy the success log and click OK.</li>
</ol>
<p>You now have a working directory all ready to be filled with files. You may notice that the folder icon for your new working directory has a green check overlaying it <img class="Inline" title="TortoiseSVN - Check Overlay" src="http://farm3.static.flickr.com/2493/4010883017_e2783ea58a_o.gif" alt="Check Overlay" width="16" height="14" /> (if you do not see it, refresh Windows Explorer until it appears). This indicates that no changes have been made to files in that directory. Considering there <em>are </em>no files, this makes sense.</p>
<h4>Setting Up in an Existing Working Directory</h4>
<p>If you already began your project and have files inside your working directory, don&#8217;t worry. It isn&#8217;t too much of a pain to get your working directory synchronized with your new repository.</p>
<p>After you have created your repository from the structure template provided earlier, follow these steps.</p>
<div class="wp-caption alignright" style="width: 221px"><img title="Commit" src="http://farm3.static.flickr.com/2600/4014369306_d657f62a3d_m.jpg" alt="TortoiseSVN - Commit" width="211" height="240" /><p class="wp-caption-text">Commit</p></div>
<ol>
<li>Create a new directory, anywhere you&#8217;d like, to hold all of your existing project files temporarily. I often just create a temporary folder on my desktop.</li>
<li>Move (<strong>not </strong>copy, move) all the files and folders that are in your existing working directory to the new temporary directory you created in step 1.</li>
<li>Your existing working directory should be completely empty now.</li>
<li>Right-click the, now empty, working directory and click &#8220;SVN Checkout&#8230;&#8221;.</li>
<li>Enter/select the URL of your new repository.</li>
<li>Append &#8220;/trunk&#8221; to the end of your repository URL (i.e. <a class="linkification-ext" title="Linkification: file:///X:/SVNRepositories/RepositoryName/trunk" href="file:///X:/SVNRepositories/RepositoryName/trunk">file:///X:/SVNRepositories/RepositoryName/trunk</a>).</li>
<li>Ensure that the checkout directory is set to the one you just right-clicked.</li>
<li>Keep the checkout depth set to &#8220;Fully recursive&#8221;.</li>
<li>Make sure the &#8220;HEAD revision&#8221; is selected.</li>
<li>Click OK.</li>
<li>Enjoy the success log and click OK.</li>
<li>Move all of your files and folders back to the working directory from the temporary folder you moved them to in step 2.</li>
<li>Feel free to delete the temporary folder after you verify all the files/folders moved over.</li>
<li>If you peek inside your working directory now, you should see a blue question mark image overlaying your file and folder icons <img class="Inline" title="TortoiseSVN - Question Overlay" src="http://farm3.static.flickr.com/2542/4010882951_0a7297b46a_o.gif" alt="Question Overlay" width="16" height="14" />. This icon indicates that the files/folders are unknown to your repository at this time. In other words, they are not versioned yet. It&#8217;s time to fix that!</li>
<li>Navigate to the parent directory of your working directory, so you can see the working directory in the list of folders. It should have the green check overlay.</li>
<li>Right-click the working directory and click &#8220;SVN Commit&#8230;&#8221;.</li>
<li>Enter a nice message for the initial commit. I recommend, &#8220;Initial commit&#8221;, or similar.</li>
<li>Select all the files and folders you want to add to the repository (drag a rectangle around them with your mouse, or Shift/Ctrl click them), right-click one of them, and click &#8220;Add&#8221;.</li>
<li>If there are any files you want to ignore from now on, select them, right-click one, and click &#8220;Ignore x items by name&#8221;. You may also select a single file and choose to ignore it or all files with the same extension.</li>
<li>Finally, click OK to commit the files to your repository.</li>
<li>Enjoy the success log and click OK.</li>
</ol>
<p>Your existing working directory is now under version control!</p>
<h3>What Next?</h3>
<p>After you have a repository setup and a working directory linked to it, there&#8217;s not much more to do except&#8230;get to work. Just update your working directory, make changes to your files, and commit the changes back to the repository at the end of the day (or sooner if you feel the need). Of course, there are some minor caveats to keep in mind in your daily use.</p>
<h4>Special Actions</h4>
<div class="wp-caption alignright" style="width: 193px"><img title="Rename" src="http://farm4.static.flickr.com/3503/4011648006_4fd48de588_o.gif" alt="TortoiseSVN - Rename" width="183" height="384" /><p class="wp-caption-text">Rename</p></div>
<p>Adding and editing files under version control is a no-brainer. However, there are special considerations for file renaming and moving. If a file is already under version control and you want to rename/move it or delete it, you must use TortoiseSVN to accomplish this in order for it to properly account for the action. Truthfully, you can just delete files and TortoiseSVN will let you mark those files as deleted the next time you issue a commit. The renames/moves are the real trouble-makers if you just make those changes outside of TortoiseSVN.</p>
<p>If you need to rename or move a file, right-click it, and select &#8220;Rename&#8230;&#8221; from the TortoiseSVN context menu. Enter the new name of the file to rename it, or enter the relative path and file name if you want to move it (i.e. SomeSubDirectory\MyFile.txt). Alternatively, you can right-click-drag (drag with the right mouse button) the file to another folder and select &#8220;SVN Move versioned item(s) here&#8221;.</p>
<p>This will instruct SVN to delete the original file and add a new one with the new name/location. If you rename/move an entire folder, you <strong>must</strong> commit the changes before editing any files inside that folder. In addition, make <em>absolutely certain</em> that you <strong>do not</strong> rename, move, or delete a <em>directory </em>that is under version control <strong>except via SVN or TortoiseSVN</strong>. Doing so, will change those hidden SVN sub-directories and that would be very bad. For all the details on these actions, read the <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html" target="_blank">Deleting, Moving and Renaming section</a> of the <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug.html" target="_blank">Daily Use Guide</a>.</p>
<h3>Further Reading</h3>
<p>I highly recommend that you learn all the capabilities of both SVN and TortoiseSVN. These are great products aimed at helping us stay organized and track revised files. Below is a list of resources I believe are helpful to beginners and seasoned users alike.</p>
<ul>
<li><a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug.html" target="_blank">TortoiseSVN &#8211; Daily Use Guide</a> &#8211; this is a must-read
<ul>
<li><a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-branchtag.html" target="_blank">Branching / Tagging</a></li>
<li><a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html" target="_blank">Merging</a></li>
<li><a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-patch.html" target="_blank">Creating and Applying Patches</a></li>
</ul>
</li>
<li><a href="http://tortoisesvn.net/most-forgotten-feature" target="_blank">TortoiseSVN &#8211; Most Forgotten Feature</a></li>
<li><a href="http://tortoisesvn.tigris.org/faq.html" target="_blank">TortoiseSVN FAQ</a></li>
<li><a href="http://svnbook.red-bean.com/" target="_blank">Version Control with Subversion (free online version)</a> &#8211; the official Subversion book</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=3AciFsIcxrg:QkxKmxRfAEo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=3AciFsIcxrg:QkxKmxRfAEo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=3AciFsIcxrg:QkxKmxRfAEo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/3AciFsIcxrg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/svn-tortoise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/svn-tortoise/</feedburner:origLink></item>
		<item>
		<title>Google Teams with Verizon Wireless</title>
		<link>http://feedproxy.google.com/~r/GeekFreeq/~3/Qa__eMwZtJo/</link>
		<comments>http://www.geekfreeq.com/google-teams-verizon-wireless/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 15:28:10 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.geekfreeq.com/?p=454</guid>
		<description><![CDATA[There was an announcement this week about a new alliance between Google and Verizon Wireless. The short of it is, Google and Verizon Wireless (VW) will be working together to deliver several Android-powered devices on the VW network.
Verizon? Open?
Android is an open source mobile operating system (OS). Yeah, open source. That means, you or I [...]]]></description>
			<content:encoded><![CDATA[<p>There was an announcement this week about a <a href="http://news.vzw.com/news/2009/10/pr2009-10-05g.html" target="_blank">new alliance between Google and Verizon Wireless</a>. The short of it is, Google and Verizon Wireless (VW) will be working together to deliver several <a href="http://www.android.com/" target="_blank">Android</a>-powered devices on the VW network.</p>
<h3>Verizon? Open?</h3>
<p>Android is an <a href="http://en.wikipedia.org/wiki/Open_source" target="_blank">open source</a> mobile operating system (OS). Yeah, open source. That means, you or I can go download the source code for the entire operating system and make changes to it if we please. Android is also an open architecture, in that applications developed for the OS have full-reign. Applications can change anything from the user interface (UI) to how a phone dials a number.</p>
<p>My confusion with this whole deal stems from Verizon Wireless&#8217; past record with one huge issue: <strong>control</strong>. The company is notorious for locking devices to a mere fraction of their manufacturer&#8217;s default functionality. This is always done in order to control the things their customers can do on their network.</p>
<p>VW &#8220;customizes&#8221; the user interface of nearly all devices sold on their network. These changes are primarily made to prevent you, dear phone owner, from using the features that are built into your phone. That&#8217;s right! If you have a phone that was new within the past 3 years or so, it most likely has the capability to install custom ring tones. If you are a VW customer, I guarantee you cannot get custom ring tones on your phone without paying VW a monthly fee, or a per download fee, to get the simplest of tones you may have already downloaded to your computer. <em>That last statement excludes only skilled geeks that hack around these limitations.</em></p>
<p>Another great &#8220;benefit&#8221; VW customers gain from the customized user interfaces is slow to unresponsive interfaces. The developers working for VW do not appear to be very talented programmers. The interface of nearly every device I have owned that has been ravaged by these folks is a horribly-performing, gaudy-looking, cluttered mess.</p>
<p>It&#8217;s just what Verizon Wireless does to its devices; that is cripple them.</p>
<p>So again, I am astonished at this deal. How in the world will Verizon Wireless maintain a stance of openness with these new Android devices? Will I be able to remove the inevitable garbage that the VW developers will come up with for these devices? Will I be able to browse the <a href="http://www.androlib.com/" target="_blank">Adroid Market/Library</a> and install any application I want to on my device?</p>
<h3>What Google Will Not Stand For</h3>
<p>Google will simply <strong>not </strong>stand for Verizon Wireless taking control over devices that make use of the Android OS. I am still concerned about VW&#8217;s track record though. I can only see them making every effort to control yet another class of devices. The public does not have access to the actual deal made between the two, but I certainly hope that Google stood by their morals on this one.</p>
<p>Bullies have never done well against Google. A case-and-point is the whole <a href="http://bits.blogs.nytimes.com/2009/09/18/google-says-apple-flatly-rejected-voice-app-for-iphone/?hp" target="_blank">issue with Apple and getting Google Voice on the iPhone</a>. Verizon Wireless is a well-known bully. How will this deal turn out? I guess, we can only wait and see.</p>
<h3>The Future of the Mobile Market</h3>
<p>If this deal plays out as announced, Verizon Wireless supporting an open device OS without governing it with their domination-nation, the mobile market will spike for the better. The new kid in town (Android) will finally have made enough friends to compete with the popular one (iPhone).</p>
<p>We need more of this kind of competition in order for true innovation to spark the necessary growth in this country (U.S.). We are <em>well </em>behind other countries in the mobile market. Most of Europe enjoys the next generation mobile infrastructure (currently, 4G) years before we begin to see it here. While there may be some provider issues abroad, generally mobile communication is much more affordable than here in the States. Our providers stifle the entire industry with their archaic practices and Band-aid methodologies.</p>
<h3>My Final Take</h3>
<p>I am <em>actually </em>excited about the deal between Google and Verizon Wireless. I know it seems surprising after reading all the above. The fact is, my family left VW last year for AT&amp;T. I was so sick of the &#8220;device-crippling&#8221; that I just had to bail. One of the reasons Verizon Wireless has never been known for its cutting-edge devices is mostly due to their locking practices in order to make a buck on every single transaction you initiate from your VW device.</p>
<p>Now, I am unsatisfied with the coverage of AT&amp;T. Granted, it was already second to VW, but it was acceptable for our needs a year ago. Since then, iPhone usage has snowballed and proven my point about our provider infrastructure problems. I feel certain that no matter which provider Apple teamed with, the iPhone would have totally discredited the network upon saturating it with streams of data requests. None of our providers can support that kind of traffic. AT&amp;T is paying that price now.</p>
<p>I&#8217;ll switch back to VW for a <em>truly </em>open Android device on a network with the best overall coverage in the country. However, I still feel that all of the underlying infrastructure needs a total makeover. It won&#8217;t be long before VW suffers the same fate as AT&amp;T, when an army of new Android users flood their network.</p>
<p>What is your take on this deal?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=Qa__eMwZtJo:81SGB0a_PU0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?i=Qa__eMwZtJo:81SGB0a_PU0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GeekFreeq?a=Qa__eMwZtJo:81SGB0a_PU0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GeekFreeq?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GeekFreeq/~4/Qa__eMwZtJo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.geekfreeq.com/google-teams-verizon-wireless/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.geekfreeq.com/google-teams-verizon-wireless/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.643 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-08-12 22:09:02 -->
