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

<channel>
	<title>All Things IT Blog</title>
	<atom:link href="http://www.enusbaum.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.enusbaum.com/blog</link>
	<description>My little nerded out corner of the Internets!</description>
	<lastBuildDate>Thu, 18 Jun 2009 21:07:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iPhone Tethering Hack &#8211; Nothing New!</title>
		<link>http://www.enusbaum.com/blog/2009/06/18/iphone-tethering-hack-nothing-new/</link>
		<comments>http://www.enusbaum.com/blog/2009/06/18/iphone-tethering-hack-nothing-new/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 21:06:37 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[AT&T]]></category>
		<category><![CDATA[Cingular]]></category>
		<category><![CDATA[iPhone Tethering]]></category>
		<category><![CDATA[Sodomy]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=323</guid>
		<description><![CDATA[Recently my fellow iPhone owners discovered with the latest 3.0 Firmware for the iPhone, that they were now able to enable tethering with no more than a small download using their phone&#8217;s browser. Thus &#8220;sticking it to the man&#8221; and allowing their iPhone&#8217;s to now work as a modem for the laptops.
The problem? Well, there [...]]]></description>
			<content:encoded><![CDATA[<p>Recently my fellow iPhone owners discovered with the latest 3.0 Firmware for the iPhone, that they were now able to enable tethering with no more than a <a title="Link -- Enable Tethering on your iPhone!" href="http://help.benm.at/help.php" onclick="return TrackClick('http%3A%2F%2Fhelp.benm.at%2Fhelp.php','Link+--+Enable+Tethering+on+your+iPhone%21')" target="_blank">small download</a> using their phone&#8217;s browser. Thus &#8220;sticking it to the man&#8221; and allowing their iPhone&#8217;s to now work as a modem for the laptops.</p>
<p>The problem? Well, there are actually two:</p>
<p><strong>First</strong> &#8211; It&#8217;s a violation of AT&amp;T&#8217;s terms of service and you MIGHT get into a <a title="Link -- Yahoo! Blogs &quot;Think twice before tethering that iPhone&quot;" href="http://tech.yahoo.com/blogs/patterson/53688/think-twice-before-tethering-that-iphone/" onclick="return TrackClick('http%3A%2F%2Ftech.yahoo.com%2Fblogs%2Fpatterson%2F53688%2Fthink-twice-before-tethering-that-iphone%2F','Link+--+Yahoo%21+Blogs+%26quot%3BThink+twice+before+tethering+that+iPhone%26quot%3B')" target="_blank">little trouble</a> for enabling it.</p>
<p><strong>Second</strong> &#8211; <a title="All Things IT Blog - Enabling Blackberry Pearl as a Modem" href="http://www.enusbaum.com/blog/2007/01/19/using-the-blackberry-pearl-as-a-bluetooth-modem/" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2F2007%2F01%2F19%2Fusing-the-blackberry-pearl-as-a-bluetooth-modem%2F','All+Things+IT+Blog+-+Enabling+Blackberry+Pearl+as+a+Modem')" target="_blank">It&#8217;s nothing new</a>. There have been hacks around for years that would allow you to use your Blackberry as a Bluetooth Modem for free, versus paying the $60 to enable a Smart Phone tethering plan through AT&amp;T. What IS unique about this situation is that tethering was a HIGHLY PUBLICIZED missing feature from the iPhone 3.0 firmware for AT&amp;T customers, so it&#8217;s compromise has drawn much more attention as previous &#8220;work arounds&#8221; have.</p>
<p>So what&#8217;s AT&amp;T and iPhone owners everywhere to do?</p>
<p><span id="more-323"></span>The only solution I see to this problem would require AT&amp;T to do something it hasn&#8217;t done&#8230;. I think ever: Put the customer first.</p>
<p>We all know that the &#8220;Unlimited&#8221; data plan you buy from AT&amp;T for your iPhone (be it EDGE or 3G) really isn&#8217;t &#8220;Unlimited&#8221; and if you were to dig into your contract or Terms of Service (TOS), you would see that AT&amp;T decides to not use the Marriam-Webster definition of &#8220;Unlimited&#8221;, but have decided on a new definition: &#8220;5GB/month&#8221;</p>
<p>I understand business involves some negotiation and some give and take, so as a consumer, I&#8217;d be willing to make the following agreement with AT&amp;T:</p>
<p><strong>I will agree to allow you to LOWER the bandwidth limit on the standard &#8220;unlimited&#8221; plan to 1GB, if you agree to not charge extra for tethering support and setup a tiered pricing plan for bandwidth where 5GB/mo is $40, 10GB/mo is $60, and so on.</strong></p>
<p>Now honestly, AT&amp;T, consumers of America, did that hurt too bad? No, of course not. It&#8217;s a perfectly fine compromise.</p>
<p>Do I think that&#8217;s what will ACTUALLY happen? No, of course not.</p>
<p>What I picture happening is AT&amp;T will probably bring the iPhone tethering plan in line with their current Smart Phone tethering plans ($60/mo), and start charging people who are currently not signed up for this plan an astronomical gateway fee for using their &#8220;WAP&#8221; gateway on a per kilobyte bases (say, $1 per kilobyte).</p>
<p>Which would mean this picture would end up costing you $40 on your monthly bill:</p>
<div id="attachment_324" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/nerd.jpg" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Fnerd.jpg','AT%26amp%3BT+will+charge+you+for+this%21')"><img class="size-full wp-image-324" title="AT&amp;T will charge you for this!" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/nerd.jpg" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Fnerd.jpg','AT%26amp%3BT+will+charge+you+for+this%21')" alt="AT&amp;T will charge you for this!" width="300" height="370" /></a><p class="wp-caption-text">AT&amp;T will charge you for this!</p></div>
<p>Will AT&amp;T cancel or suspend users who are currently using the &#8220;hack&#8221; to access tethering? Of course not! Why cut a paying customer from their base and give that money to a competitor, especially when they can charge you huge penalties! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So my suggestion to anyone using tethering is to just use at your own risk and know that what your does DOES violate your Terms Of Service. This way when you get a $1,000,000 bill from AT&amp;T because you decided to bit torrent some Norwegian Porno while driving to Fresno, you won&#8217;t be left looking like our $40 man pictured above! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Cheers!</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/06/18/iphone-tethering-hack-nothing-new/&amp;t=iPhone+Tethering+Hack+-+Nothing+New%21&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/06/18/iphone-tethering-hack-nothing-new/&amp;title=iPhone+Tethering+Hack+-+Nothing+New%21&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/06/18/iphone-tethering-hack-nothing-new/&amp;title=iPhone+Tethering+Hack+-+Nothing+New%21&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=iPhone+Tethering+Hack+-+Nothing+New%21;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/06/18/iphone-tethering-hack-nothing-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems with nVidia cooling over long term?</title>
		<link>http://www.enusbaum.com/blog/2009/06/15/problems-with-nvidia-cooling-over-long-term/</link>
		<comments>http://www.enusbaum.com/blog/2009/06/15/problems-with-nvidia-cooling-over-long-term/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 23:00:28 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[GeForce 8800GTX]]></category>
		<category><![CDATA[nVidia]]></category>
		<category><![CDATA[Overheating]]></category>
		<category><![CDATA[Quadro FX 4600]]></category>
		<category><![CDATA[SETI@home]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=316</guid>
		<description><![CDATA[I&#8217;m an avid SETI@home cruncher have been for years. My bragging note is that I recently passed 3,000,000 credits on SETI@home and part of that is thanks to the SETI@home CUDA enabled client they released which enables GPU crunching of SETI@home work units!
I&#8217;m currently running the CUDA client on two machines that have video cards [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m an avid SETI@home cruncher have been for years. My bragging note is that I recently passed 3,000,000 credits on SETI@home and part of that is thanks to the <a title="Link -- SETI@home CUDA FAQ" href="http://setiathome.berkeley.edu/cuda_faq.php" onclick="return TrackClick('http%3A%2F%2Fsetiathome.berkeley.edu%2Fcuda_faq.php','Link+--+SETI%40home+CUDA+FAQ')" target="_blank">SETI@home CUDA</a> enabled client they released which enables GPU crunching of SETI@home work units!</p>
<p>I&#8217;m currently running the CUDA client on two machines that have video cards that support the <a title="Link -- nVidia CUDA API" href="http://www.nvidia.com/object/cuda_home.html" onclick="return TrackClick('http%3A%2F%2Fwww.nvidia.com%2Fobject%2Fcuda_home.html','Link+--+nVidia+CUDA+API')" target="_blank">CUDA API</a>. My home <a title="Link -- nVidia GeForce 8800 Series" href="http://www.nvidia.com/page/geforce_8800.html" onclick="return TrackClick('http%3A%2F%2Fwww.nvidia.com%2Fpage%2Fgeforce_8800.html','Link+--+nVidia+GeForce+8800+Series')" target="_blank">GeForce 8800GTX</a> and my work <a title="Link -- nVidia Quadro FX 4600 Series" href="http://www.nvidia.com/object/quadro_fx_5600_4600.html" onclick="return TrackClick('http%3A%2F%2Fwww.nvidia.com%2Fobject%2Fquadro_fx_5600_4600.html','Link+--+nVidia+Quadro+FX+4600+Series')" target="_blank">Quadro FX 4600</a>. From what I&#8217;ve read in specs and reviews, they&#8217;re basically the same card. So although this issue isn&#8217;t TECHNICALLY apples to apples, there might be a connection.</p>
<p>I noticed after a month or so of running the CUDA client on my home GeForce 8800GTX, my Vista machine started to become unstable. Blue Screening (BSOD) or rebooting randomly. It struck me as odd because I had not changed anything and for the most part, the system had just been sitting idle crunching work units.</p>
<div id="attachment_317" class="wp-caption aligncenter" style="width: 500px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/gpu-burn.jpg" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Fgpu-burn.jpg','Your+GPU+running+SETI%40home+CUDA+Client')"><img class="size-full wp-image-317" title="Your GPU running SETI@home CUDA Client" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/gpu-burn.jpg" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Fgpu-burn.jpg','Your+GPU+running+SETI%40home+CUDA+Client')" alt="Your GPU running SETI@home CUDA Client" width="490" height="304" /></a><p class="wp-caption-text">Your GPU running SETI@home CUDA Client</p></div>
<p>After some basic trouble shooting I was able to determine that the instability was due to my video card overheating! This struck me as strange, because I know nVidia uses variable speed fans on the 8800GTX, so you&#8217;d think that if the system was reaching an unsafe operating level, that the fan would kick on, right? Wrong.</p>
<p><span id="more-316"></span></p>
<p>I ended up downloading <a title="Link -- RivaTuner Homepage" href="http://www.guru3d.com/index.php?page=rivatuner" onclick="return TrackClick('http%3A%2F%2Fwww.guru3d.com%2Findex.php%3Fpage%3Drivatuner','Link+--+RivaTuner+Homepage')" target="_blank">RivaTuner</a> which allows you to access low level functions (such as overclocking, and FAN CONTROL). Using RivaTuner, I manually setting my GPU fan to 100%. This keeps the average temp of my 8800GTX around 67-70C.</p>
<p>Which brings us to today when my work machine started showing the same symptoms. When I booted my machine, within 5 minutes of being on (with SETI@home running), it gave me a BSOD (with dxgkrnl.sys as the culprit). The system wouldn&#8217;t boot for a few minutes (returning BIOS beep codes) until the Quadro FX 4600 cooled down and the system booted again.</p>
<p>This time I disabled SETI@home as soon as I logged in and the system appeared stable. I installed <a title="Link -- SpeedFan Homepage" href="http://www.almico.com/speedfan.php" onclick="return TrackClick('http%3A%2F%2Fwww.almico.com%2Fspeedfan.php','Link+--+SpeedFan+Homepage')" target="_blank">SpeedFan</a> to double check I was seeing the same issue. Low and behold, I start SETI@home and my GPU temp almost gets to 80 degrees Celsius before my system blue screens and reboots.</p>
<p>Repeating the same steps as with my home system, I use RivaTuner to force the Quadro FX 4600 to always keep the fan speed at 100% and this seems to fix the issue. My GPU temp currently sits at 67 degrees Celsius and my system appears to be stable (for the time being <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>I&#8217;m curious if anyone else out there has had the same heat related issues when running CUDA applications on nVidia video cards. It seems that their automatic fan controls have logic issues when not running a 3D game (because when running one of those, it&#8217;ll hit leaf blower speeds).</p>
<p>It would seem to me that although the video cards had no issue keeping up with cooling over a short period of time, but over an extended period of time with the GPU being used 24-hours a day, the cooling solutions appears to fall behind. Is this caused by a physical change due to the constant heat/stress? Who knows!</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="attachment_321" class="wp-caption aligncenter" style="width: 335px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/user_83.gif" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Fuser_83.gif','My+BOINC+Stats')"><img class="size-full wp-image-321" title="My BOINC Stats" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/user_83.gif" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Fuser_83.gif','My+BOINC+Stats')" alt="My BOINC Stats" width="325" height="140" /></a><p class="wp-caption-text">My BOINC Stats</p></div>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/06/15/problems-with-nvidia-cooling-over-long-term/&amp;t=Problems+with+nVidia+cooling+over+long+term%3F&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/06/15/problems-with-nvidia-cooling-over-long-term/&amp;title=Problems+with+nVidia+cooling+over+long+term%3F&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/06/15/problems-with-nvidia-cooling-over-long-term/&amp;title=Problems+with+nVidia+cooling+over+long+term%3F&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Problems+with+nVidia+cooling+over+long+term%3F;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/06/15/problems-with-nvidia-cooling-over-long-term/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Old School Game: Reuinion (and a Saved Game Editor)</title>
		<link>http://www.enusbaum.com/blog/2009/06/09/old-school-game-reuinion-and-a-saved-game-editor/</link>
		<comments>http://www.enusbaum.com/blog/2009/06/09/old-school-game-reuinion-and-a-saved-game-editor/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 01:00:46 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[General Software]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Abandonware]]></category>
		<category><![CDATA[Cheater]]></category>
		<category><![CDATA[DOSBox]]></category>
		<category><![CDATA[Game Editor]]></category>
		<category><![CDATA[Reunion]]></category>
		<category><![CDATA[Trainer]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=309</guid>
		<description><![CDATA[Does anyone else remember playing Reunion back on their 386&#8217;s with a staggering 2MB of RAM? Lord knows I remember!
Reunion came out over fifteen years ago and I still feel the urge to play it now and then even today. It&#8217;s a great game and can be downloaded from many abandonawre sites across the internet.
I [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_310" class="wp-caption aligncenter" style="width: 648px"><img class="size-full wp-image-310" title="Reunion Title Screen" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/reunion.png" alt="Reunion Title Screen" width="638" height="398" /><p class="wp-caption-text">Reunion Title Screen</p></div>
<p>Does anyone else remember playing <a title="Link -- Wikipedia Article: Reunion" href="http://en.wikipedia.org/wiki/Reunion_(video_game)" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FReunion_%28video_game%29','Link+--+Wikipedia+Article%3A+Reunion')" target="_blank">Reunion</a> back on their 386&#8217;s with a staggering 2MB of RAM? Lord knows I remember!</p>
<p>Reunion came out over fifteen years ago and I still feel the urge to play it now and then even today. It&#8217;s a great game and can be downloaded from many <a title="Abandonia -- Reunion (1994)" href="http://www.abandonia.com/en/games/150/Reunion.html" onclick="return TrackClick('http%3A%2F%2Fwww.abandonia.com%2Fen%2Fgames%2F150%2FReunion.html','Abandonia+--+Reunion+%281994%29')" target="_blank">abandonawre</a> sites across the internet.</p>
<p>I started playing again recently using <a title="Link -- DOSBox Homepage" href="http://www.dosbox.com/" onclick="return TrackClick('http%3A%2F%2Fwww.dosbox.com%2F','Link+--+DOSBox+Homepage')" target="_blank">DOSBox</a> and I was amazed, because I didn&#8217;t even know the game had sound! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  When I played &#8220;back in the day&#8221;, my system didn&#8217;t have a Sound Card (because I couldn&#8217;t afford a <a title="Link -- Wikipedia Article: AWE32" href="http://en.wikipedia.org/wiki/Sound_Blaster_AWE32" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSound_Blaster_AWE32','Link+--+Wikipedia+Article%3A+AWE32')" target="_blank">Creative AWE32</a>), so needless to say it was a whole different experience. The game has a fantastic production value and even when modern development languages, I&#8217;m not sure that even I&#8217;d be able to create a game of such depth a complexity!</p>
<p>Anywho, I began to get frustrated because I knew there were parts of the game I was missing because I couldn&#8217;t meet certain goals or didn&#8217;t have enough resources. Granted, I should have spent the time perfecting the game and working towards those achievements&#8230;.. but it&#8217;s an old game and I don&#8217;t have as much free time as I did when I was thirteen years old <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>To that end, I sat down and studied the Save Game format for a while and also the (paltry) Save Editor that was included in the Abandonware version. I knew I could come up with something better that gives me even more options in the game. It took me a couple hours but I was able to come up with a pretty functional Saved Game Editor for Reunion that works around a couple glitches the previous version had.</p>
<p>I know, I&#8217;m a total cheater but it was a fun little project and I figure perhaps ONE person on the entirety of the Internet must need something like this as well, so I figure I&#8217;d throw it out there for anyone who needs it <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Reunion Saved Game Editor</strong> &#8211; <a href="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/reunionsge.zip" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Freunionsge.zip','Download')">Download</a> (92kb)</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/06/09/old-school-game-reuinion-and-a-saved-game-editor/&amp;t=Old+School+Game%3A+Reuinion+%28and+a+Saved+Game+Editor%29&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/06/09/old-school-game-reuinion-and-a-saved-game-editor/&amp;title=Old+School+Game%3A+Reuinion+%28and+a+Saved+Game+Editor%29&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/06/09/old-school-game-reuinion-and-a-saved-game-editor/&amp;title=Old+School+Game%3A+Reuinion+%28and+a+Saved+Game+Editor%29&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Old+School+Game%3A+Reuinion+%28and+a+Saved+Game+Editor%29;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/06/09/old-school-game-reuinion-and-a-saved-game-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading my HTPC &#8212; It&#8217;s time to bring it up to date!</title>
		<link>http://www.enusbaum.com/blog/2009/06/02/upgrading-my-htpc-its-time-to-bring-it-up-to-date/</link>
		<comments>http://www.enusbaum.com/blog/2009/06/02/upgrading-my-htpc-its-time-to-bring-it-up-to-date/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 22:40:28 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Audiophile]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[HD Video]]></category>
		<category><![CDATA[HDMI Output]]></category>
		<category><![CDATA[HTPC]]></category>
		<category><![CDATA[HTPC HDMI]]></category>
		<category><![CDATA[Intel Atom]]></category>
		<category><![CDATA[Mini-ITX]]></category>
		<category><![CDATA[NVidia ION]]></category>
		<category><![CDATA[Zotac]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=300</guid>
		<description><![CDATA[Many moons ago I decided to build an Home Theater PC (HTPC) for miscellaneous computer uses that I might want to display on a TV&#8230;. OK, really it was just the thing everyone was doing at the time and I wanted a new project, so a small HTPC fit the bill. We&#8217;re all friends here, [...]]]></description>
			<content:encoded><![CDATA[<p>Many moons ago I decided to build an Home Theater PC (HTPC) for miscellaneous computer uses that I might want to display on a TV&#8230;. OK, really it was just the thing everyone was doing at the time and I wanted a new project, so a small HTPC fit the bill. We&#8217;re all friends here, so no need to beat around the bush, right? <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So I built an HTPC. I built a GREAT HTPC. It was small, fanless and had everything I&#8217;d ever need. But I was disappointed though, only because the quality of the video combined with what I was ACTUALLY able to do with it let me down. I suppose it was my own fault because I had let my desire for the system to be completely silent and fanless impact its performance.</p>
<p>Fast forward a couple years later and I have this shoe box sized PC sitting below my computer desk at home. What should I do with it?</p>
<p><span id="more-300"></span>In moving forward with reviving my HTPC from its unused ranking among my home hardware, I decided to set forth a couple of goals for the upgrade so I could be pointed in what I was shopping for (and so I could have a valid excuse to tell my wife why I was spending more money on something I never used in the first place <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  )</p>
<ol>
<li><strong>More CPU Horsepower</strong> &#8211; This is obviously the most important aspect of this upgrade. Currently my HTPC uses a VIA EPIA-M 600mhz fanless Mini-ITX motherboard with built in CPU/Video. Originally this seemed like enough to play NES ROMS but it became obvious that OS overhead and lack of video acceleration were deal breakers when it came time to play DivX/XviD movies. So this next version had to have considerably more CPU power.</li>
<li><strong>HDMI/HD Video Support</strong> &#8211; In the last few years I&#8217;ve upgraded my Home Theater to use HDMI exclusively. It was mostly to clean up the serpent lair that was the are behind my AV rack (which I&#8217;m sure the EMF was giving me cancer). Here&#8217;s a <a title="Image -- My Old AV Rack" href="http://www.enusbaum.com/blog/wp-content/uploads/2009/06/rewire.jpg" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F06%2Frewire.jpg','Image+--+My+Old+AV+Rack')">picture</a> (seriously, no joke!) <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  So, in honor of my new found love affair with HDMI, this new HTPC must support HDMI in a Mini-ITX form factor up to a resolution of at LEAST 720p.</li>
<li><strong>5.1/7.1/Surround Sound Support</strong> &#8211; Sorta the same as above, but the HTPC needs to support surround sound. As I&#8217;ve mentioned in my <a title="Blog Entry -- DVD Backup: My Way or the Highway" href="http://www.enusbaum.com/blog/2009/01/22/backing-up-a-dvd-to-divx-my-way-or-the-highway/" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2F2009%2F01%2F22%2Fbacking-up-a-dvd-to-divx-my-way-or-the-highway%2F','Blog+Entry+--+DVD+Backup%3A+My+Way+or+the+Highway')" target="_blank">previous article</a>, when I backup my DVD&#8217;s to XviD, I preserve the Dolby AC3 soundtrack so I would like to still enjoy the surround sound when replaying these files on my HTPC.</li>
<li><strong>Wireless Ethernet</strong> &#8211; You see a theme here? Basically I want the power cable and the HDMI cable being the only wires coming out of the back of this device. Wireless Ethernet is pretty standard on most motherboards now, so this shouldn&#8217;t be a tall order.</li>
<li><strong>Price</strong> &#8211; I understand that to make this upgrade even worth it, things have to be cost effective. I want to upgrade the Mini-ITX motherboard in my HTPC for under $200 out the door.</li>
</ol>
<p>I began my search at my favorite peddler of Mini-ITX and mini-system wares, <a title="Link -- LogicSupply.com" href="http://www.logicsupply.com/" onclick="return TrackClick('http%3A%2F%2Fwww.logicsupply.com%2F','Link+--+LogicSupply.com')" target="_blank">LogicSuppy.com</a>. I immediately take note of the new Intel Atom based solutions from both Intel and Jetway, but I also note that Intel has decided to &#8220;nerf&#8221; their Atom offerings as to not undercut their desktop motherboard market. Their Atom Mini-ITX boards, albeit cheap (sub $100), lack sever of my requirements. The Jetway Atom boards at LEAST offer DVI (so I could do a ghetto fabulous DVI -&gt; HDMI conversion), but that would require more cables than it&#8217;s worth and the Jetway boards cost upwards of $250! Yikes!</p>
<p>The time came to conjure up my Google-Fu skills to see what I could come up with. Newegg has some descent offering from VIA but all the EPIA boards are under powered in comparison to the latest Intel offerings. A 1.8Ghz VIA C7 board would seem to have the horsepower, but it fell short of the requirements and also crept up to almost $300!</p>
<p>I keep going back to the Atom platforms but none of them seem to fill my requirements. That is, until I come across the NVIDIA ION platform offering from Zotac! I remember reading about NVIDIA ION but never gave any serious thought to it as a desktop platform. I decided to check out the features of the <a title="Link -- Zotac IONITX-A Atmon N330 Mini-ITX Motherboard" href="http://www.zotacusa.com/zotac-ionitx-a-u-atom-n330-1-6ghz-dual-core-mini-itx-intel-motherboard.html" onclick="return TrackClick('http%3A%2F%2Fwww.zotacusa.com%2Fzotac-ionitx-a-u-atom-n330-1-6ghz-dual-core-mini-itx-intel-motherboard.html','Link+--+Zotac+IONITX-A+Atmon+N330+Mini-ITX+Motherboard')" target="_blank">Zotac IONITX-A Atom N330</a> Offering:</p>
<ol>
<li>Horse Power: Dual Core Atom N330 1.6Ghz CPU &#8212; <strong>CHECK!</strong></li>
<li>HD/HDMI: 1080p over HDMI &#8212; <strong>CHECK!</strong></li>
<li>Surround Support: 7.1 over HDMI &#8212; <strong>CHECK!</strong></li>
<li>Wireless Ethernet: Build In &#8212; <strong>CHECK!</strong></li>
<li>Price: Amazon lists it at <strong>$189</strong> when it&#8217;s released  <strong>&#8211; CHECK!</strong></li>
</ol>
<p>It seems we have a winner!</p>
<p>Talk about a colossal upgrade for a HTPC. A Mini-ITX motherboard that has a dual core CPU and HDMI output!? Insane! Needless to say as soon as this little bad boy hits the streets I&#8217;ll be picking one up.</p>
<p>I&#8217;m curious if anyone else out there has been in the market for a mini HTPC upgrade as well? What have you been looking for and what were your requirements? I&#8217;m interested to hear from you!</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/06/02/upgrading-my-htpc-its-time-to-bring-it-up-to-date/&amp;t=Upgrading+my+HTPC+--+It%27s+time+to+bring+it+up+to+date%21&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/06/02/upgrading-my-htpc-its-time-to-bring-it-up-to-date/&amp;title=Upgrading+my+HTPC+--+It%27s+time+to+bring+it+up+to+date%21&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/06/02/upgrading-my-htpc-its-time-to-bring-it-up-to-date/&amp;title=Upgrading+my+HTPC+--+It%27s+time+to+bring+it+up+to+date%21&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Upgrading+my+HTPC+--+It%27s+time+to+bring+it+up+to+date%21;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/06/02/upgrading-my-htpc-its-time-to-bring-it-up-to-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET StringBuilder &#8212; Fast, but not as fast as you think!</title>
		<link>http://www.enusbaum.com/blog/2009/05/28/net-stringbuilder-fast-but-not-as-fast-as-you-think/</link>
		<comments>http://www.enusbaum.com/blog/2009/05/28/net-stringbuilder-fast-but-not-as-fast-as-you-think/#comments</comments>
		<pubDate>Thu, 28 May 2009 20:18:47 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[C# Programming]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[Microsoft .NET 3.0 / WinFX]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[.NET Optimization]]></category>
		<category><![CDATA[.NET Profiler]]></category>
		<category><![CDATA[.NET Profiling]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# Optimization]]></category>
		<category><![CDATA[C# String Concatenation]]></category>
		<category><![CDATA[C# String Manipulation]]></category>
		<category><![CDATA[C# Strings]]></category>
		<category><![CDATA[StringBuilder]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=294</guid>
		<description><![CDATA[StringBuilder: Friend or Foe?]]></description>
			<content:encoded><![CDATA[<p>I recently ran into a situation where I was tasked to profile some .NET code and do some optimizations anywhere hot spots popped up. I was amazed to find out that one of the BIGGEST offenders in our code block was a simple call to <strong>StringBuilder.Append(char)</strong>. I had to take a step back and scratch my head and wonder if my profiler was confused.</p>
<p>I re-ran some tests using the <strong>StopWatch</strong> class to hard code some metrics into the application and they also confirmed the findings. What&#8217;s up? How could a class that everyone says you can use to your hearts content when it came to string concatenation was failing me?</p>
<p>Turns out, it was a mix of misuse and a common misconception about the <a title="MSDN Documentation -- StringBuilder Class" href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx" onclick="return TrackClick('http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.text.stringbuilder.aspx','MSDN+Documentation+--+StringBuilder+Class')" onclick="return TrackClick('http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.text.stringbuilder.aspx','MSDN+Documentation+--+StringBuilder+Class')" target="_blank">StringBuilder Class</a>.</p>
<p><span id="more-294"></span></p>
<p>One of the first things you learn while picking up .NET is that the <a title="MSDN Documentation -- StringBuilder Class" href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx" onclick="return TrackClick('http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.text.stringbuilder.aspx','MSDN+Documentation+--+StringBuilder+Class')" onclick="return TrackClick('http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.text.stringbuilder.aspx','MSDN+Documentation+--+StringBuilder+Class')" target="_blank">StringBuilder Class</a> is your friend when it comes to concatenating large strings in memory. It beats the pants off of <a title="MSDN Documentation -- String.Concat Method" href="http://msdn.microsoft.com/en-us/library/system.string.concat.aspx" onclick="return TrackClick('http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.string.concat.aspx','MSDN+Documentation+--+String.Concat+Method')" target="_blank">String.Concat</a> and <a title="MSDN Documentation -- String.Format Method" href="http://msdn.microsoft.com/en-us/library/system.string.format.aspx" onclick="return TrackClick('http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.string.format.aspx','MSDN+Documentation+--+String.Format+Method')" target="_blank">String.Format</a>, while also being a mutable object in the Framework utilizing an in-memory buffer.</p>
<p>I used <a title="Homepage -- JetBrains dotTrace Profiler" href="http://www.jetbrains.com/profiler/" onclick="return TrackClick('http%3A%2F%2Fwww.jetbrains.com%2Fprofiler%2F','Homepage+--+JetBrains+dotTrace+Profiler')" target="_blank">JetBrains dotTrace</a> to help profile the application and it was very evident from the get-go that StringBuilder was causing the whole process to slow down.</p>
<p>The nature of my application was basically reading in a text buffer 1 character as a time, and using the <strong>StringBuilder</strong> as an output buffer. So for a 1k file, The method <strong>Append(char)</strong> would be called 1024 times. A 600k file would call <strong>Append(char)</strong> 614,400 times.</p>
<p>So why was I getting burned in execution time? The issue turned out to be two fold.</p>
<p>First, there&#8217;s overhead cost to the call. I don&#8217;t care how lightweight your method is, if you&#8217;re calling it <span style="text-decoration: underline;"><strong>SIX HUNDRED THOUSAND TIMES</strong></span>, it&#8217;s going to take a bit. Let alone a method who handles a string buffer in memory and string manipulation. So basically, no matter how fast StringBuilder actually is, it&#8217;s not a free call and you should consider the fact that the call still has overhead when architecting your solution.</p>
<p>Architecture brings me to my second point. While writing each character individually made sense initally, it seems that it was just lazy <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  The optimized route would have been calling Append with a SUBSTRING of the input buffer, this way we avoid the overhead of multiple calls by writing all the neccisary data in one big blob.</p>
<p>So 600,000 calls to <strong>StringBuilder.Append(char)</strong> becomes only a few hundred calls to <strong>StringBuilder.Append(string.Substring(start, count))</strong>. Sure, the Substring Virtual Method itself has overhead, but it&#8217;s still less than the thousands of calls to <strong>Append(char)</strong> that we&#8217;re saving ourself <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Conclusion?</p>
<p>StringBuilder is fast, but it&#8217;s not free. Take this into consideration when utilizing it while appending large data sets in small chunks. <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cheers!</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/05/28/net-stringbuilder-fast-but-not-as-fast-as-you-think/&amp;t=.NET+StringBuilder+--+Fast%2C+but+not+as+fast+as+you+think%21&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/05/28/net-stringbuilder-fast-but-not-as-fast-as-you-think/&amp;title=.NET+StringBuilder+--+Fast%2C+but+not+as+fast+as+you+think%21&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/05/28/net-stringbuilder-fast-but-not-as-fast-as-you-think/&amp;title=.NET+StringBuilder+--+Fast%2C+but+not+as+fast+as+you+think%21&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=.NET+StringBuilder+--+Fast%2C+but+not+as+fast+as+you+think%21;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/05/28/net-stringbuilder-fast-but-not-as-fast-as-you-think/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Example Huffman Compression Routine in C#</title>
		<link>http://www.enusbaum.com/blog/2009/05/22/example-huffman-compression-routine-in-c/</link>
		<comments>http://www.enusbaum.com/blog/2009/05/22/example-huffman-compression-routine-in-c/#comments</comments>
		<pubDate>Fri, 22 May 2009 21:17:04 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[C# Programming]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Data Compression]]></category>
		<category><![CDATA[Deflate]]></category>
		<category><![CDATA[GZip]]></category>
		<category><![CDATA[Huffman Coding]]></category>
		<category><![CDATA[Huffman Compression]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=285</guid>
		<description><![CDATA[This last week I decided to sit down and hash out a simple Huffman compression routine using C#. I&#8217;d never created a compression routine before from scratch (my past implementations were static for the sake of time savings), so I fleshed one out. I know that many examples exist elsewhere on the net&#8230;. but they [...]]]></description>
			<content:encoded><![CDATA[<p>This last week I decided to sit down and hash out a simple Huffman compression routine using C#. I&#8217;d never created a compression routine before from scratch (my past implementations were static for the sake of time savings), so I fleshed one out. I know that many examples exist elsewhere on the net&#8230;. but they all seemed overly complicated and up their own ass <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I had a couple goals in mind while creating my routine:</p>
<p><strong>1. KEEP IT SIMPLE</strong> &#8212; A lot of routines out there WORK, but their code is too overly complicated for their own good. This over complication leads to slowness which brings me to my next goal <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  It should be a simple class that accepts input data, with simple public accessors that are easy to understand even for the novice developer (sorry folks, no asynchronous delegates). <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><strong>2. MAKE IT FAST</strong> &#8212; When dealing with large amounts of data in C#, especially when running it through an algorithm, it&#8217;s all too easy to use all the handy built in virtual methods or using other build in tools which make coding easier with speed being the sacrifice. Die hard C++ developers will point to these routines as C#&#8217;s downfall as a legitimate language when it comes to data intensive tasks.</p>
<p><span id="more-285"></span></p>
<p>The class I came up with is pretty simple. I use a Generic List to store a collection of &#8220;Leaf&#8221; objects, which have several basic attributes that help not only identify its value but also its place in the tree. Using this method, I was able to utilize the built in methods of the List object (I know, for shame&#8230;. but it&#8217;s easier in this instance) by firing off anonymous delegates for searches and comparators. I&#8217;m not terribly worried about using these virtual methods here only because the creation and encoding of the tree is usually the smallest task in the process <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>The encoding and decoding is where I decided to focus on optimizations since this is where the BULK of the work is done. The .NET Framework has several methods that make working with binary data easy. You can use the Convert.ToString() method which allows you to pass in a BASE option, thus allowing you to convert any character to it&#8217;s binary representation. My original implementation used that method and the end result as embarrassingly slow <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I went back to the drawing board and thought to myself, &#8220;If I had to re-write this in C++, how would I handle the encoding?&#8221; Duh, I&#8217;d be using bitwise operators up the wazoo! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>After some recoding and pulling my hair out for a couple of hours, I was able to re-write the routine using bit operations and it works! On top of all that, it&#8217;s fast as all get out! My current benchmarks had it encoding a 1MB data set in under 1 second with ~50% compression. Not too shabby! Of course, compression ratios will vary depending on how normalized the input data set is.</p>
<p>Now I&#8217;m sure there&#8217;s some question you have on your mind and I&#8217;ll try to address them now:</p>
<p><strong>Q: Does it use a lot of memory?</strong></p>
<p><strong>A:</strong> You bet your sweet ass it does! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Seriously though, it&#8217;s only the method in which I setup the class that requires the memory. I establish an input buffer within the class that you can write the &#8216;raw&#8217; data to, which is then read from during encoding. In addition, during encoding I create an output buffer in memory where the &#8216;encoded&#8217; data is written. So it stands to reason that if you&#8217;re encoding 100MB of data, this routine can easily gobble up 200MB of RAM or more. The rule of thumb I found was File Size * 4 would be the memory requirement. There&#8217;s optimizations you can make that would lower the memory footprint (like, build the frequency table without buffering then read the input 1 byte at a time, say from a file), but I felt that would over complicate the solution and make it too focused for one specific instance. The current implementation is kept general for a reason <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Q: Could this be done faster in C++?</strong></p>
<p><strong>A:</strong> Yes, probably&#8230;. but not much faster. Although the code is written in C#, at run time the IL is compiled to x86. The bit operations we&#8217;re using would compile the exact same as a C++ routine (XOR is XOR, I don&#8217;t care what language you&#8217;re using). In addition, the encoding of the data itself is only using primitive native types which limits any cross language differences. In fact, you can paste the encode and decode routines into C++ and they work! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Your only speed improvement might be in the generation of the tree itself&#8230; but even then, that&#8217;s super small overhead when compared with the amount of data you&#8217;re probably compressing.</p>
<p>Of course, all that applied to the Encoding (Compression) side of the house, the decompression routine is pretty slow (about 3 seconds per 1MB of decompressed data) and could probably use some more optimizations.</p>
<p><strong>Q: Is this any better than using the built in GZip or Deflate classes available in System.IO.Compression?</strong></p>
<p><strong>A:</strong> It&#8217;s not even close to being in competition with those routines <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  This is really just a proof of concept for BASIC Huffman Coding, which doesn&#8217;t take into account advanced features of modern compression routines such as pattern or content mapping. This routine is slower (especially in decompression), so I wouldn&#8217;t go making anything like this your #1 choice for a compression routine if others are available <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  So use this for educational purposes only.</p>
<p><strong>Q: What version of the .NET Framework will this work with?</strong></p>
<p><strong>A:</strong> The code here was written in Visual Studio 2008 targeting .NET 3.5. I use some Framework 3.5 specific things (such as object initializers), but nothing that would make conversion difficult. I avoided LINQ only because I&#8217;m not entirely sold on the idea and I still like using anonymous delegates. <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  This code could be converted to Framework 2.0 with minor changes and possibly Framework 1.1, but that might require a little more effort.</p>
<p><strong>Q: What is the format used to store the compressed data?</strong></p>
<p><strong>A:</strong> I encode the decompression information within the final output stream. The output format is like this:</p>
<p>Bytes 0 &#8211; 8: Final Output Size (Not used, but there as a checksum if needed in the future)</p>
<p>Byte 9: Number of Bytes in the Decode Dictionary</p>
<p>Bytes 10 &#8211; n: Decode Dictionary</p>
<p>Between the Decode Dictionary and the actual data I add the characters &#8220;BCD&#8221; (which stands for <strong>B</strong>inary <strong>C</strong>oded <strong>D</strong>ata). This lets me know where the dictionary ends and the actual coded data begins. It helped during debugging and I figure it&#8217;d help anyone else out there as well while working with this routine <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Q: What&#8217;s with the essay? Just give me the code!</strong></p>
<p><strong>A:</strong> Fine! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Seriously though, the only reason I&#8217;m doing such a long write-up on the code is to help people who are perhaps beginning to look into this sort of code for the first time and might have questions on why I did things a certain way. Understanding WHY the code was written helps understand how it operates.</p>
<p>So that&#8217;s the high and low of it! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Hope this helps someone out and if you have any questions, please feel free to leave a comment!</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Huffman.zip</strong> &#8211; <a title="Huffman Coding in C#" href="http://www.enusbaum.com/blog/wp-content/uploads/Huffman.zip" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2FHuffman.zip','Huffman+Coding+in+C%23')">Download</a> (3k)</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/05/22/example-huffman-compression-routine-in-c/&amp;t=Example+Huffman+Compression+Routine+in+C%23&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/05/22/example-huffman-compression-routine-in-c/&amp;title=Example+Huffman+Compression+Routine+in+C%23&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/05/22/example-huffman-compression-routine-in-c/&amp;title=Example+Huffman+Compression+Routine+in+C%23&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Example+Huffman+Compression+Routine+in+C%23;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/05/22/example-huffman-compression-routine-in-c/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Time Warner Cable &#8212; Have They Gone Mental?</title>
		<link>http://www.enusbaum.com/blog/2009/04/07/time-warner-cable-have-they-gone-mental/</link>
		<comments>http://www.enusbaum.com/blog/2009/04/07/time-warner-cable-have-they-gone-mental/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 17:48:46 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Anal Sex]]></category>
		<category><![CDATA[Bandwidth Cap]]></category>
		<category><![CDATA[Bullshit]]></category>
		<category><![CDATA[Metered Bandwidth]]></category>
		<category><![CDATA[Metered Internet]]></category>
		<category><![CDATA[Monthly Limit]]></category>
		<category><![CDATA[Road Runner]]></category>
		<category><![CDATA[Sodomy]]></category>
		<category><![CDATA[Theft]]></category>
		<category><![CDATA[Time Warner Cable]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=265</guid>
		<description><![CDATA[I&#8217;m sure you&#8217;ve seen it in the news lately, lord knows I have seen it on every technology related website and blog across the internet. Time Warner Cable has announced a monthly bandwidth cap on their Road Runner Cable Internet service. Time Warner is touting that the 40GB plan should be enough for a majority [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure you&#8217;ve seen it in the news lately, lord knows I have seen it on every technology related website and blog across the internet. Time Warner Cable has announced a <a title="TomsHardware -- Article on Time Warner capping Road Runner service" href="http://www.tomshardware.com/news/time-warner-cable-bandwidth-cap,7466.html" onclick="return TrackClick('http%3A%2F%2Fwww.tomshardware.com%2Fnews%2Ftime-warner-cable-bandwidth-cap%2C7466.html','TomsHardware+--+Article+on+Time+Warner+capping+Road+Runner+service')" target="_blank">monthly bandwidth cap on their Road Runner Cable Internet service</a>. Time Warner is touting that the 40GB plan should be enough for a majority of users and barely anyone should incur overages.</p>
<p>What are they not telling you? That the 40GB plan is $54.90! The comparable in price plan they&#8217;re offering to customers who currently subscribe to Road Runner standard for $29.95/mo? A paltry 5GB! That&#8217;s right! Time Warner Cable is going to be charging home users almost THIRTY DOLLARS per month for a pathetically small 5GB of data transfer. Don&#8217;t think the marketing genius stops there! In addition to these new ridiculous bandwidth caps, they&#8217;re going to be charging you $1 per gigabyte over!</p>
<p><span id="more-265"></span></p>
<p>To break down these numbers, I thought I&#8217;d throw out some AVERAGE usage from my household, who DOESN&#8217;T use P2P file sharing or sites such as The Pirate Bay:</p>
<p>Average Amazon Unbox video rental file size: 1GB</p>
<p>Average weekly Rock Band DLC file size from XBox Live: 150MB (500MB if it&#8217;s a full album)</p>
<p>Average Netflix Streaming (High Quality) video: 2GB</p>
<p>So by looking at these numbers, just downloading the OCCASIONAL Rock Band downloadable content and watching a movie every OTHER Saturday Night would cause you to incur bandwidth overages if you&#8217;re using the standard $29.99/mo plan from Road Runner.</p>
<p>Is this a mistake? You&#8217;re damned right it is! Time Warner has obviously missed the boat that the internet is the future and by limiting people&#8217;s access to it, it&#8217;ll only drive customers away to other services that make online content more readily available (and cheaper!). So let&#8217;s discuss alternatives!</p>
<p><span style="text-decoration: underline;"><strong>Alternative #1: DSL (&#8221;I just want regular Internet Access&#8221;)<br />
</strong></span></p>
<div id="attachment_266" class="wp-caption aligncenter" style="width: 160px"><img class="size-thumbnail wp-image-266" title="AT&amp;T Logo" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/04/att-logo-150x150.jpg" alt="AT&amp;T Logo" width="150" height="150" /><p class="wp-caption-text">&quot;The Man&quot;</p></div>
<p>Personally, I&#8217;m not a super huge fan of DSL because speeds vary depending on your distance from the telco and their bandwidth compared to the offerings from cable companies can&#8217;t complete. BUT, desperate times call for desperate measures! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>AT&amp;T offers a high speed DSL plan for $35/mo that has speeds of 6mbps downstream &amp; 1mbps upstream. Comparable to Road Runner in price, AT&amp;T offers a DSL plan for $25/mo that features 1.5mbps downstream &amp; 384kbps upstream.</p>
<p>I agree that these numbers SEEM weak, but let&#8217;s crunch the numbers really quickly. What I want to do is compare maximum monthly cost assuming you leave your internet connection ONLY downloading 24 hours a day for 30 days (one billing cycle).</p>
<table border="0" cellspacing="0" cellpadding="0" width="50%" align="center">
<tbody>
<tr>
<td></td>
<td align="center"><strong><span style="text-decoration: underline;">Road Runner</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">AT&amp;T DSL</span></strong></td>
</tr>
<tr>
<td align="right"><strong>Speed:</strong></td>
<td align="center">22mbps</td>
<td align="center">6mbps</td>
</tr>
<tr>
<td align="right"><strong>30 Days of Data:</strong></td>
<td align="center">6.7TB</td>
<td align="center">1.85TB</td>
</tr>
<tr>
<td align="right"><strong>Monthly Plan Cost:</strong></td>
<td align="center">$54.90 (40GB Plan)</td>
<td align="center">$35.00</td>
</tr>
<tr>
<td align="right"><strong>Overage Cost:</strong></td>
<td align="center">$6,820.00</td>
<td align="center">$0.00</td>
</tr>
<tr>
<td align="right"><strong>Total Internet Bill:</strong></td>
<td align="center"><strong><span style="text-decoration: underline;">$6,875.70</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">$35.00</span></strong></td>
</tr>
</tbody>
</table>
<p>As you can see, if you&#8217;re only concerned with monthly transfer it would seem that AT&amp;T DSL is the best alternative to your bandwidth requirements. If you need speeds higher than 6mbps, then it would appear you&#8217;re tired to Time Warner&#8217;s draconian bandwidth caps.</p>
<p><span style="text-decoration: underline;"><strong>Alternative #2: Dedicated DS-3 (&#8221;I want speed, no matter the cost!&#8221;)</strong></span></p>
<p><span style="text-decoration: underline;"><strong></strong></span></p>
<div id="attachment_267" class="wp-caption aligncenter" style="width: 160px"><span style="text-decoration: underline;"><strong></strong><strong><img class="size-thumbnail wp-image-267" title="Fiber Optics" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/04/fiberoptics-150x150.jpg" alt="Fiber Optics" width="150" height="150" /></strong></span><p class="wp-caption-text">My doctor said I need more..</p></div>
<p><strong></strong></p>
<p>This sounds ridiculous, but hear me out. I&#8217;m sure nobody out there will debate that a dedicated DS-3 is a viable alternative to residential internet providers, but the numbers add up versus Time Warner Road runner because it&#8217;d be much cheaper per gigabyte and over twice the speed!</p>
<p>There are many DS-3 providers across the country and each one has different pricing structures. I took the average of a cross section of quotes it would cost me to have a DS-3 installed at my home in a coastal California city. I&#8217;ll break down the price using the same table above:</p>
<table border="0" cellspacing="0" cellpadding="0" width="50%" align="center">
<tbody>
<tr>
<td></td>
<td align="center"><strong><span style="text-decoration: underline;">Road Runner</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">Dedicated DS-3</span></strong></td>
</tr>
<tr>
<td align="right"><strong>Speed:</strong></td>
<td align="center">22mbps</td>
<td align="center">45mbps</td>
</tr>
<tr>
<td align="right"><strong>30 Days of Data:</strong></td>
<td align="center">6.7TB</td>
<td align="center">13.9TB</td>
</tr>
<tr>
<td align="right"><strong>Monthly Plan Cost:</strong></td>
<td align="center">$54.90 (40GB Plan)</td>
<td align="center">$5,000.00</td>
</tr>
<tr>
<td align="right"><strong>Overage Cost:</strong></td>
<td align="center">$6,820.00</td>
<td align="center">$0.00</td>
</tr>
<tr>
<td align="right"><strong>Total Internet Bill:</strong></td>
<td align="center"><strong><span style="text-decoration: underline;">$6,875.70</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">$5,000.00</span></strong></td>
</tr>
</tbody>
</table>
<p>So as you can see from the above table, as ridiculous as a dedicated DS-3 line sounds as being used for residential internet access, it comes out being cheaper than Time Warner Road Runner! Food for thought for those people who have nothing but money to spare and demand top speed access and unlimited monthly transfers to their favorite&#8230; recipe sites. <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span style="text-decoration: underline;"><strong>Alternative #3: Dialup (&#8221;I want more monthly transfer, I don&#8217;t even care about the speed!&#8221;)</strong></span></p>
<div id="attachment_268" class="wp-caption aligncenter" style="width: 160px"><img class="size-thumbnail wp-image-268" title="+++ATAH0" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/04/us_robotics_modem-150x150.jpg" alt="+++ATAH0" width="150" height="150" /><p class="wp-caption-text">+++ATAH0</p></div>
<p>Wait, wait. Don&#8217;t close your browser yet. Just hear me out on this one <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Dial up is something a lot of us remember fondly as our first gateway to the net. Internet providers did limit our usage, but it was time limited (for example: 30 hours per month). Not because bandwidth was more expensive then (which it was), but because telco fees were so high when it came to installing additional POTS line to the ISP. This way they could operate on fewer POTS lines without having to charge users higher monthly rates.</p>
<p>Dialup modem technology has plateaued at 56kbps over your standard phone line (depending on distance to the telco, same as DSL). The average dial up plan these days is roughly $9.99 and can be found in almost any market. It&#8217;s a fantastic alternative because it can work virtually anywhere without much additional hardware, effort on the end user&#8230;. or trenching fiber down the street <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>How does this even make sense as an alternative? Total monthly transfer! That&#8217;s right folks! Did you ever stop and wonder &#8220;Wait, 40GB per month? How much is that in kilobits per second?&#8221; The sad and shocking answer to that is about <strong>16.5kbps</strong>. You heard me! The best Road Runner plan you can buy offers you less monthly downloaded data than a 28.8 modem!</p>
<p>So now that I&#8217;ve got your attention, hows about that great service comparison table again!</p>
<table border="0" cellspacing="0" cellpadding="0" width="50%" align="center">
<tbody>
<tr>
<td></td>
<td align="center"><strong><span style="text-decoration: underline;">Road Runner</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">Road Runner<br />
(capped at 56kbps)</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">56K Dial up</span></strong></td>
</tr>
<tr>
<td align="right"><strong>Speed:</strong></td>
<td align="center">22mbps</td>
<td align="center">56kbps</td>
<td align="center">56kbps</td>
</tr>
<tr>
<td align="right"><strong>30 Days of Data:</strong></td>
<td align="center">6.7TB</td>
<td align="center">138GB</td>
<td align="center">138GB</td>
</tr>
<tr>
<td align="right"><strong>Monthly Plan Cost:</strong></td>
<td align="center">$54.90 (40GB Plan)</td>
<td align="center">$54.90 (40GB Plan)</td>
<td align="center">$9.95</td>
</tr>
<tr>
<td align="right"><strong>Overage Cost:</strong></td>
<td align="center">$6,820.00</td>
<td align="center">$98.00</td>
<td align="center">$0.00</td>
</tr>
<tr>
<td align="right"><strong>Total Internet Bill:</strong></td>
<td align="center"><strong><span style="text-decoration: underline;">$6,875.70</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">$152.90</span></strong></td>
<td align="center"><strong><span style="text-decoration: underline;">$9.95</span></strong></td>
</tr>
</tbody>
</table>
<p>Have I sold you on dial up? Probably not <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  But I&#8217;m trying to make the point that Time Warner has gone completely off the deep end with their pricing structure compared to the services that you receive. Am I the only person who&#8217;s floored that dial up is not only cheaper than Cable Internet but now also offers better monthly transfer at a lower rate?</p>
<p>Is Road Runner bandwidth REALLY $100 more expensive than dial up? No, if anything, bandwidth has become many times cheaper than it was ten years ago. So what gives?</p>
<p>Well, my personal opinion is that the bottom line here is the cable industry is in trouble from competition who have more focused and more easily maintained infrastructure. Competition in the Television market from companies like DirecTV and DishNetwork have forced some cable companies into bankruptcy because upgrading and maintaining a physical network has overhead much higher than that of a single satellite floating through space.</p>
<p>In addition, you have internet competition from companies like AT&amp;T and Verizon who are starting to offer Fiber To The Premises (FTTP) in newer housing communities, which bundles internet, television and phone all under one low cost bill.</p>
<p>I hope everyone takes these points to heart and contacts Time Warner and asks them &#8220;What gives?&#8221; And if it comes down to it, look into one of the alternatives I proposed above because that&#8217;s our rights as consumers!</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>PS: If you get the DS-3, invite me over to your house. I have some stuff I need to download <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/04/07/time-warner-cable-have-they-gone-mental/&amp;t=Time+Warner+Cable+--+Have+They+Gone+Mental%3F&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/04/07/time-warner-cable-have-they-gone-mental/&amp;title=Time+Warner+Cable+--+Have+They+Gone+Mental%3F&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/04/07/time-warner-cable-have-they-gone-mental/&amp;title=Time+Warner+Cable+--+Have+They+Gone+Mental%3F&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Time+Warner+Cable+--+Have+They+Gone+Mental%3F;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/04/07/time-warner-cable-have-they-gone-mental/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Importing movies from a Samsung NV24HD into iMovie &#8216;08</title>
		<link>http://www.enusbaum.com/blog/2009/02/11/importing-movies-from-a-samsung-nv24hd-into-imovie-08/</link>
		<comments>http://www.enusbaum.com/blog/2009/02/11/importing-movies-from-a-samsung-nv24hd-into-imovie-08/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 04:47:34 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[General Software]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[720p]]></category>
		<category><![CDATA[ffmpegx]]></category>
		<category><![CDATA[H.264]]></category>
		<category><![CDATA[HD Video]]></category>
		<category><![CDATA[iLife]]></category>
		<category><![CDATA[iMovie]]></category>
		<category><![CDATA[MP4]]></category>
		<category><![CDATA[MPEG-4]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Samsung NV24HD]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=242</guid>
		<description><![CDATA[I&#8217;ve been using my Samsung NV24HD camera for some time now to capture both standard resolution (640&#215;480) and high definition (720p) video, but recently my wife needed to import one of those movies into iMovie to edit it down in size. To my surprise, even though Quicktime is able to play the MP4 files created [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using my Samsung NV24HD camera for some time now to capture both standard resolution (640&#215;480) and high definition (720p) video, but recently my wife needed to import one of those movies into iMovie to edit it down in size. To my surprise, even though Quicktime is able to play the MP4 files created by the Samsung camera, iMovie 08 is unable to properly import the videos and just locks up.</p>
<p>Turns out that the MP4 files made by the Samsung NV24HD camera are a of a non-standard H.264/MPEG-4 AVC format. So what&#8217;s to do?</p>
<p>Well, if you&#8217;re an Apple user (which I assume you are since you&#8217;re reading blog entry about iMovie <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ), then you&#8217;re in luck. There&#8217;s a tool you can download called <a title="Link -- ffmpegX Homepage" href="http://www.ffmpegx.com/" onclick="return TrackClick('http%3A%2F%2Fwww.ffmpegx.com%2F','Link+--+ffmpegX+Homepage')">ffmpegX</a> which allows you to convert the MP4 files to iMovie compatible MOV MPEG-4 files. In addition, ffmpegx can convert video files to a multitude of formats inlcuding iPod, iPhone and DivX formats. So even if your issue isnt EXACTLY the video files from the Samsung NV24HD camera, ffmpegx is still a great utility to use for video transcoding/covnverting in OSX <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="attachment_243" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-243" title="Screen Shot of ffmpegX" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/02/picture-3-300x250.png" alt="Screen Shot of ffmpegX" width="300" height="250" /><p class="wp-caption-text">Screen Shot of ffmpegX</p></div>
<p>The only down side I had to doing this was the time it took to convert. It took over two hours to encode a 25 minute movie at 640&#215;480 on my 2.4ghz Macbook Pro. So if you&#8217;re planning to use this method, plan to leave your Mac plugged in for a while.</p>
<p>Also, I&#8217;ve yet to try newer iMovie &#8216;09 which also just may fix this issue. When I&#8217;m able to get my hot little hands on a copy of iLife &#8216;09, I&#8217;ll be sure to let everyone know if it works out!</p>
<p>Hope this post is able to help out my fellow Samsung and Apple users out there!</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/02/11/importing-movies-from-a-samsung-nv24hd-into-imovie-08/&amp;t=Importing+movies+from+a+Samsung+NV24HD+into+iMovie+%2708&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/02/11/importing-movies-from-a-samsung-nv24hd-into-imovie-08/&amp;title=Importing+movies+from+a+Samsung+NV24HD+into+iMovie+%2708&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/02/11/importing-movies-from-a-samsung-nv24hd-into-imovie-08/&amp;title=Importing+movies+from+a+Samsung+NV24HD+into+iMovie+%2708&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Importing+movies+from+a+Samsung+NV24HD+into+iMovie+%2708;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/02/11/importing-movies-from-a-samsung-nv24hd-into-imovie-08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Car Hacking &#8212; Installing an iPod Adapter in my 2004 Acura TSX</title>
		<link>http://www.enusbaum.com/blog/2009/01/31/car-hacking-installing-an-ipod-adapter-in-my-acura-tsx/</link>
		<comments>http://www.enusbaum.com/blog/2009/01/31/car-hacking-installing-an-ipod-adapter-in-my-acura-tsx/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 05:07:14 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Audiophile]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[2004 Acura TSX]]></category>
		<category><![CDATA[Acura]]></category>
		<category><![CDATA[Acura iPod]]></category>
		<category><![CDATA[Acura TSX]]></category>
		<category><![CDATA[Acura TSX iPod]]></category>
		<category><![CDATA[DICE iPod Kit]]></category>
		<category><![CDATA[iPod Adapter]]></category>
		<category><![CDATA[MP3 Player]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=226</guid>
		<description><![CDATA[My car is old. Ok, not REALLY old but old enough that it doesn&#8217;t have an AUX input or an iPod adapter.   I drive a 2004 Acura TSX with Navi and recently canceled my Sirius subscription to save money, so I wanted to be able to plug in my iPhone 3G and listen [...]]]></description>
			<content:encoded><![CDATA[<p>My car is old. Ok, not REALLY old but old enough that it doesn&#8217;t have an AUX input or an iPod adapter. <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  I drive a 2004 Acura TSX with Navi and recently canceled my Sirius subscription to save money, so I wanted to be able to plug in my iPhone 3G and listen to Pandora or songs off my iPod.</p>
<p>I checked around the net for models that were supported by my car (which was hard because it was a 1st generation, 1st year TSX). I know there&#8217;s an MP3/DVD Player option as well as an XM head unit available for the 2004 TSX, but no iPod adapters from Honda. I finally decided on the <a title="Link -- DICE Electronics" href="http://www.diceelectronics.com/" onclick="return TrackClick('http%3A%2F%2Fwww.diceelectronics.com%2F','Link+--+DICE+Electronics')" target="_blank">DICE Electronics</a> <a title="Link -- Dice Electronics R4 Kit for Honda/Acura" href="http://www.diceelectronics.com/Merchant/merchant.mvc?Screen=PROD&amp;Store_Code=DETEST01&amp;Product_Code=i-Honda&amp;Category_Code=DICE_IPOD_HONDA" onclick="return TrackClick('http%3A%2F%2Fwww.diceelectronics.com%2FMerchant%2Fmerchant.mvc%3FScreen%3DPROD%26amp%3BStore_Code%3DDETEST01%26amp%3BProduct_Code%3Di-Honda%26amp%3BCategory_Code%3DDICE_IPOD_HONDA','Link+--+Dice+Electronics+R4+Kit+for+Honda%2FAcura')" target="_blank">R4 Kit for Honda/Acura</a> because it had received positive reviews and seemed a pretty simple install <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I purchased the DICE iPod Kit from a reputable seller on eBay for $139 + tax and had it within a few days. The unit itself is pretty small (only a couple square inches) and has inputs for the iPod cable as well as AUX input. It&#8217;s a good thing the unit is so small because it has to fit up in the dash <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Installing the unit in my car took about all of 2 minutes. Literally.</p>
<p>(Sorry about no pictures, I&#8217;ll add them as soon as I&#8217;m able to!)</p>
<p>Step one was to remove the storage bin that is located below the factory radio. This is where the factor XM or MP3 player would go. Simply open the bin and pull it out towards you. There are two clips on the bottom right and left as well as clips on the top.</p>
<p>Pull out the storage bin carefully as the light above is still attached to it. Carefully remove the light taking care to not break the housing. Once the bin is out your radio compartment will be exposed. Just a warning: be careful in there! Unless you&#8217;ve unhooked your battery, there&#8217;s still live current as well as some wires for the airbags <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Don&#8217;t kill yourself over an iPod hookup <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Step two is wiring it in. You&#8217;ll see one wire running straight up into the stereo. Unplug this. This is the wire that will plug into the daisy chain provided by the DICE iPod kit. Plug the other end of the DICE iPod kit into the factory radio.</p>
<p>Step three is running our cables however you choose (into the glove box, storage bin, middle console) and putting the storage bin back in! Presto! Done! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I used a Dremel and cut out a small section of the bin to run the cables through. To keep it clean looking, I used a bit of rubber (read: old mouse pad) to cover the Dremel spot and cut a slit down the middle allowing the cables to run through it. This helps seal up the bin without having a gaping hole into my dash. <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Also, for the sake of future use I added a small amount of hot clue to the connectors that are plugged into the DICE iPod Kit so (god forbid) someone pulls on the cable too hard it wont unplug from the DICE iPod Kit while still in my dash. <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  I didn&#8217;t add a LOT of glue, just a small drop to hold them in place nicely.</p>
<div id="attachment_238" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2009/01/sdc10421.jpg" onclick="return TrackClick('http%3A%2F%2Fwww.enusbaum.com%2Fblog%2Fwp-content%2Fuploads%2F2009%2F01%2Fsdc10421.jpg','2004+Acura+TSX+iPod+Cable')"><img class="size-medium wp-image-238" title="2004 Acura TSX iPod Cable" src="http://www.enusbaum.com/blog/wp-content/uploads/2009/01/sdc10421-300x169.jpg" alt="Finished storage bin with iPod &amp; Aux Cables" width="300" height="169" /></a><p class="wp-caption-text">Finished storage bin with iPod &amp; Aux Cables</p></div>
<p>A few &#8220;gotcha&#8217;s&#8221; about this unit and the 2004 Acura TSX. The &#8216;XM&#8217; mode of the DICE iPod Kit only works with Honda/Acura models with an actual &#8216;XM&#8217; button. This wasn&#8217;t introduced until the 2005 model year. The 2004 Acura TSX only has a &#8220;CD/AUX&#8221; button. Because of this, the DICE iPod Kit cannot work and will not be detected in XM mode. You have to set the unit to &#8220;CDC&#8221; (CD Changer) mode.</p>
<p>Other than that, the unit works great! It&#8217;s able to charge my iPhone 3G while I&#8217;m listening to music as well as allowing me to stream my iPod and any audio from my iPod straight into my factory radio!</p>
<p>Setting the DICE iPod Kit to &#8216;iPod&#8217; mode allows you to control the iPod manually on the screen and not with the wheel controls. I find this much easier than trying to navigate the songs using a &#8216;track up&#8217; &amp; &#8216;track down&#8217; method on my steering wheel. Also, in &#8216;iPod&#8217; mode, the DICE iPod Kit acts as a standard audio source. Meaning it&#8217;ll play Pandora and send ring tones to your factory radio without having to use the AUX input, like iPod adapters from other manufacturers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I hope this helps someone else out there in the same situation I was in <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Please feel free to ask any questions and I&#8217;ll be sure to post pictures of my setup as soon as I get them!</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/01/31/car-hacking-installing-an-ipod-adapter-in-my-acura-tsx/&amp;t=Car+Hacking+--+Installing+an+iPod+Adapter+in+my+2004+Acura+TSX&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/01/31/car-hacking-installing-an-ipod-adapter-in-my-acura-tsx/&amp;title=Car+Hacking+--+Installing+an+iPod+Adapter+in+my+2004+Acura+TSX&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/01/31/car-hacking-installing-an-ipod-adapter-in-my-acura-tsx/&amp;title=Car+Hacking+--+Installing+an+iPod+Adapter+in+my+2004+Acura+TSX&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Car+Hacking+--+Installing+an+iPod+Adapter+in+my+2004+Acura+TSX;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/01/31/car-hacking-installing-an-ipod-adapter-in-my-acura-tsx/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Listen To The JRPG Soundtrack Of The JRPG That Doesn&#8217;t Exist!</title>
		<link>http://www.enusbaum.com/blog/2009/01/27/listen-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist/</link>
		<comments>http://www.enusbaum.com/blog/2009/01/27/listen-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 18:16:36 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Audiophile]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Ebben]]></category>
		<category><![CDATA[Ebben Flow]]></category>
		<category><![CDATA[Flow]]></category>
		<category><![CDATA[JRPG]]></category>
		<category><![CDATA[Nebyoolae]]></category>
		<category><![CDATA[Soundtrack]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=191</guid>
		<description><![CDATA[I was out checking my morning feeds when I happened across this article over at kotaku.com . It seems this guy has created a soundtrack for a Japanese RPG (Final Fantasy-sorts), but the catch is the game doesn&#8217;t exist anywhere else bit his head!
Talk about backwards game development!
It&#8217;s a pretty sweet soundtrack and I highly [...]]]></description>
			<content:encoded><![CDATA[<p>I was out checking my morning feeds when I happened across <a title="Listen To The JRPG Soundtrack Of The JRPG That Doesn't Exist" href="http://kotaku.com/5139847/listen-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist" onclick="return TrackClick('http%3A%2F%2Fkotaku.com%2F5139847%2Flisten-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist','Listen+To+The+JRPG+Soundtrack+Of+The+JRPG+That+Doesn')" target="_blank">this</a> article over at <a title="Link -- Kotaku.com" href="http://kotaku.com/" onclick="return TrackClick('http%3A%2F%2Fkotaku.com%2F','Link+--+Kotaku.com')" target="_blank">kotaku.com</a> . It seems this guy has created a soundtrack for a Japanese RPG (Final Fantasy-sorts), but the catch is the game doesn&#8217;t exist anywhere else bit his head!</p>
<p>Talk about backwards game development!</p>
<p>It&#8217;s a pretty sweet soundtrack and I highly suggest everyone take a click over this his <a title="Link -- Ebben Flow Soundtrack" href="http://ef.nebyoolae.com/" onclick="return TrackClick('http%3A%2F%2Fef.nebyoolae.com%2F','Link+--+Ebben+Flow+Soundtrack')" target="_blank">website</a> to check out the soundtrack as well as his other <a title="Link -- Nebyoolae.com" href="http://nebyoolae.com/" onclick="return TrackClick('http%3A%2F%2Fnebyoolae.com%2F','Link+--+Nebyoolae.com')" target="_blank">musical creations</a> which are just as good! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cheers!</p>
<div><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://www.enusbaum.com/blog/2009/01/27/listen-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist/&amp;t=Listen+To+The+JRPG+Soundtrack+Of+The+JRPG+That+Doesn%27t+Exist%21&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td> <td><iframe src='http://www.reddit.com/button_content?newwindow=1&amp;url=http://www.enusbaum.com/blog/2009/01/27/listen-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist/&amp;title=Listen+To+The+JRPG+Soundtrack+Of+The+JRPG+That+Doesn%27t+Exist%21&amp;t=2 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://www.enusbaum.com/blog/2009/01/27/listen-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist/&amp;title=Listen+To+The+JRPG+Soundtrack+Of+The+JRPG+That+Doesn%27t+Exist%21&amp;t=1 ' height='80' width='52' scrolling='no' frameborder='0' ></iframe></td> <td><script type="text/javascript"><!--yahooBuzzArticleHeadline=Listen+To+The+JRPG+Soundtrack+Of+The+JRPG+That+Doesn%27t+Exist%21;//--></script><script type="text/javascript" src="http://d.yimg.com/ds/badge2.js" badgetype=square></script></td></table></div><!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	-->]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2009/01/27/listen-to-the-jrpg-soundtrack-of-the-jrpg-that-doesnt-exist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
