<?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 &#187; eric</title>
	<atom:link href="http://www.enusbaum.com/blog/author/admin/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>Tue, 18 Oct 2011 20:22:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Throwing AMD Bulldozer A Bone</title>
		<link>http://www.enusbaum.com/blog/2011/10/throwing-amd-bulldozer-a-bone/</link>
		<comments>http://www.enusbaum.com/blog/2011/10/throwing-amd-bulldozer-a-bone/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 20:22:58 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[AMD Bulldozer]]></category>
		<category><![CDATA[Bulldozer Module]]></category>
		<category><![CDATA[Intel I7]]></category>
		<category><![CDATA[Modular Processor]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=480</guid>
		<description><![CDATA[So the reviews are in, and it&#8217;s not a pretty picture. AMD Bulldozer has hit the street and reviews across the board show the new flagship CPU from AMD barely keeping pace with Intel&#8217;s &#8220;consumer tier&#8221; i5-2500k in performance benchmarks, while having the high end Intel i7 line of processors stomp it is almost every [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_490" class="wp-caption alignright" style="width: 310px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/bobcat.jpg"><img class="size-full wp-image-490 " title="AMD - Bulldozer or Bobcat?" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/bobcat.jpg" alt="AMD - Bulldozer or Bobcat?" width="300" height="202" /></a><p class="wp-caption-text">AMD - Bulldozer or Bobcat?</p></div>
<p>So the reviews are in, and it&#8217;s not a pretty picture. AMD Bulldozer has hit the street and reviews across the board show the new flagship CPU from AMD barely keeping pace with Intel&#8217;s &#8220;consumer tier&#8221; i5-2500k in performance benchmarks, while having the high end Intel i7 line of processors stomp it is almost every benchmark.</p>
<p>Tom&#8217;s Hardware had a <a title="TomsHardware -- Did We Expect Too Much From AMD Bulldozer?" href="http://www.tomshardware.com/news/amd-fx-8150-cpu-launch-marketing,13701.html" target="_blank">retrospective</a> on the AMD Bulldozer release and poised the question, &#8220;Did we expect too much from AMD Bulldozer?&#8221;. The writer takes the position that AMD marketing set expectations too high for performance and competitiveness in the marketplace by stunts such as the Guinness World Record for a processor hitting <a title="CNN.com -- AMD Chip Sets World Record" href="http://articles.cnn.com/2011-09-13/tech/tech_innovation_amd-chip-world-record_1_amd-chips-overclocking-bulldozer?_s=PM:TECH" target="_blank">8.4Ghz overclock</a>.</p>
<p>So is it all doom and gloom for AMD? Can nothing positive come from the release of the AMD Bulldozer architecture? In this blog, my goal is to outline a couple important points we should all take from AMD Bulldozer and perhaps a give silver lining to the clouds currently gathering above AMD.</p>
<p><span id="more-480"></span>(Anyone looking for an exhaustive review of the new AMD Bulldozer CPU&#8217;s to <a title="Tom's Hardware -- AMD Bulldozer FX-8150 Review" href="http://www.tomshardware.com/reviews/fx-8150-zambezi-bulldozer-990fx,3043.html" target="_blank">here</a> (Tom&#8217;s Hardware) or <a title="AnandTech - The Bulldozer Review" href="http://www.anandtech.com/show/4955/the-bulldozer-review-amd-fx8150-tested" target="_blank">here</a> (AnandTech))</p>
<h2>AMD is redefining what a &#8216;core&#8217; is in a CPU &#8212; And that&#8217;s not a bad thing!</h2>
<div id="attachment_483" class="wp-caption alignleft" style="width: 312px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/cpu_traditional.jpg"><img class="size-full wp-image-483 " title="Traditional CPU Block Diagram" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/cpu_traditional.jpg" alt="Traditional CPU Block Diagram" width="302" height="237" /></a><p class="wp-caption-text">Traditional CPU Block Diagram</p></div>
<p>This is the highlight point from the Bulldozer Architecture, in that the idea of what constitutes a CPU core is now changing. Prior to AMD Bulldozer, a CPU consisted of monolithic cores which were considered a stand-alone, monolithic logic circuits that might have a high level of sharing among other cores on the same die (L3 cache, <a title="Wikipedia -- Intel QuickPath Interconnect" href="http://en.wikipedia.org/wiki/Intel_QuickPath_Interconnect" target="_blank">QPI</a>/<a title="Wikipedia - Hypertransport" href="http://en.wikipedia.org/wiki/HyperTransport" target="_blank">HyperTransport</a>). This allowed for fairly easy implementation at the kernel/OS level on how to handle threading within the OS scheduler.</p>
<p>Intel got the ball rolling on putting the independent cores to work by optimizing the workload, with with their <a title="Wikipedia - Simultaneous Multithreading" href="http://en.wikipedia.org/wiki/Simultaneous_multithreading" target="_blank">Simultaneous Multithreading</a> (SMT) implementation, which they call &#8220;<a title="Wikipedia - Intel Hyper-threading" href="http://en.wikipedia.org/wiki/Hyper-threading" target="_blank">HyperThreading</a>&#8220;. This allows for multiple, independent instructions to be executed in the same core in a single clock cycle. What this means is that previous &#8216;unused&#8217; gates within the a core are now being utilized, thus squeezing more work per clock out of your CPU.</p>
<p>For years, this is how it has been. Intel has enhanced it&#8217;s SMT ipmlementation over the years and worked with software vendors (Microsoft, specifically) to optimize their software to schedule work across cores properly. The example here is that if you have two physical cores Hyper-Threaded with an additional two virtual cores, with two threads of work, you don&#8217;t want to cram them into one physical core by assigning the threads to one physical core and that same core&#8217;s virtual instance. Windows 7 does a fantastic job demonstrating this implementation with the following screen show I grabbed the other night while doing some work.</p>
<div id="attachment_484" class="wp-caption aligncenter" style="width: 540px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/taskmgr.png"><img class="size-full wp-image-484 " title="Task Manager - Windows 7 SMT Optimizations" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/taskmgr.png" alt="Task Manager - Windows 7 SMT Optimizations" width="530" height="391" /></a><p class="wp-caption-text">Task Manager - Windows 7 SMT Optimizations keeping work across physical cores</p></div>
<p>So what the AMD design team has done with the Bulldozer architecture is to sit down and re-think what work the CPU does, what parts can be easily shared and where die space/heat savings can be had with little sacrifice to performance. What their engineers came up with was (at least in my mind) nothing short of brilliant, and there&#8217;s two ways to look at it:</p>
<ol>
<li>They &#8216;shared&#8217; FETCH &amp; DECODE stages of the pipeline across two &#8216;cores&#8217;</li>
<li>They added a second Integer Scheduler/Pipeline to the core, allowing for true parallel execution within a single core/module</li>
</ol>
<div id="attachment_485" class="wp-caption alignright" style="width: 317px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/bulldozer_block.jpg"><img class="size-full wp-image-485  " title="Bulldozer Module Block Diagram" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/bulldozer_block.jpg" alt="Bulldozer Module Block Diagram" width="307" height="261" /></a><p class="wp-caption-text">Bulldozer Module Block Diagram</p></div>
<p>As you can see in the AMD Bulldozer block diagram (right), what the AMD engineers did was add another Integer Scheduler/Pipeline to the core allowing for true parallel execution within a single &#8216;Bulldozer Module&#8217; (their new definition for what was previously considered a core). This really excites me because it takes the idea of a CPU core and begins abstracting it out much like AMD&#8217;s GPGPU strategy with the Radeon HD line of cards.</p>
<p>Where as GPGPU&#8217;s have a collection of small Unified Shaders (which are small, simple Floating Point/Integer number crunchers), the Bulldozer CPU architecture is being setup to scale to multiple Bulldozer Modules on a single chip to handle general number crunching tasks.</p>
<p>Where AMD fails here is that obviously their floating point math when compared to monolithic processors is going to fail, but AMD engineers are counting on implementation of the <a title="Wikipedia - Advanced Vector Extensions" href="http://en.wikipedia.org/wiki/Advanced_Vector_Extensions" target="_blank">Advanced Vector Extensions</a> and the upcoming AVX2 to help them keep pace (not to be a naysayer, but 3dNow! anyone? <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>This modular approach to CPU design is a real step forward, if not the biggest in recent history, for x86 chip design. Is it a eight &#8216;core&#8217; processor, or a quad &#8216;core&#8217; processor with SMT? I think that&#8217;s a call for marketing. What I can say is that breaking the monolithic design for x86 processors is a step in the right direction, and one that I&#8217;m very happy to see!</p>
<p>&nbsp;</p>
<h2>That being said, does anyone miss EPIC yet?</h2>
<p>So all these AMD Bulldozer benchmarks seem to highlight a big issue when it comes to CPU design/architecture: Your pretty new architecture is only as good as the software designed to utilize it.</p>
<p>AMD is currently (and Intel was, previously) mired down in a marketing battle and the SMT technology in their chip IS sound and works beautifully, but that Windows 7 isn&#8217;t setup to properly handle how threads can be optimized across Bulldozer Modules. Seriously? It&#8217;s 2011 and we&#8217;re still fighting this battle? That&#8217;s like saying, &#8220;Yeah, I&#8217;ve got a sweet video card&#8230; but I can&#8217;t use it until the next version of Windows&#8230;&#8221; <strong>FAIL!</strong></p>
<p>The <a title="Wikipedia - Explicitly Parallel Instruction Computing" href="http://en.wikipedia.org/wiki/Explicitly_parallel_instruction_computing" target="_blank">Explicitly Parallel Instruction Computing</a> (EPIC) Architecture was first implemented with the Itanium processor line from Intel. The basic idea behind it was that the compiler would, at compile time, determine which instructions could be executed in parallel and how best to optimize execution on the processor. The benefit to this was that the CPU didn&#8217;t require any additional hardware for SMT and the OS could care less about how it was executing the instructions.</p>
<p>Although it all worked great in theory, delays from Intel, poor software support from Microsoft and complex compiler designs ultimately tanked Itanium along with EPIC.</p>
<p>I think you&#8217;d be hard pressed to find a person who will carry the x86 banner, as at this point it&#8217;s a necessary evil for the desktop market. But I have to think that chip manufacturers, especially AMD at this point, will eventually reach a tipping point where they have to stop relying on the Operating Systems/Kernels to optimize the usage of their hardware.</p>
<p>Perhaps CPU drivers? Perhaps a rebirth of EPIC? I&#8217;m not sure, but I think this issue is really brought to light in the latest AMD Bulldozer reviews.</p>
<p>&nbsp;</p>
<h2>And while we&#8217;re talking modular processor design</h2>
<p>Not to wank over the topic more, but I really think AMD is on to something here with their modular processor design. The idea that with advances in processor power management and design, we&#8217;re no longer bound to have cores in &#8220;lock step&#8221; and they&#8217;re free to lead a little more independent life on the die.</p>
<div id="attachment_488" class="wp-caption alignright" style="width: 430px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/block.jpg"><img class="size-full wp-image-488 " title="nVidia &quot;Kel-Al&quot; Block Diagram" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/10/block.jpg" alt="nVidia &quot;Kel-Al&quot; Block Diagram" width="420" height="354" /></a><p class="wp-caption-text">nVidia &quot;Kel-Al&quot; Block Diagram</p></div>
<p>I think there&#8217;s a lot we could take from the mobile market space and what AMD has currently achieved with Bulldozer. Take a look at nVidia&#8217;s latest mobile CPU named &#8220;Kal-El&#8221;. What nVidia realized was that while users were performing single threaded tasks such as watching a video, playing music or a simple mobile game, there&#8217;s no reason to keep four cores spun up to do this.</p>
<p>AMD Bulldozer KINDA accomplishes this with core &#8220;parking&#8221;, but I think they came at this problem backwards. As a home user, I&#8217;m not terribly concerned about the power consumption of my home processor as much as I am the raw performance when I need it. Granted, parked cores allow for a slight overclock using the &#8220;Turbo Core&#8221; technology which can overclock the active cores up by 20% over stock clock.</p>
<p>One thing we can take from the discussion of multithreded software is that most software is either massively scalable across many cores, or it&#8217;s not. As an end user, I appreciate that chip designers are moving towards a more modular design, but I&#8217;m still let down by options.</p>
<p>If I&#8217;m at home playing a game, do I want six cores clocked at 3.2Ghz? Perhaps. Should Windows park two and clock the remaining four up to 3.6Ghz? Mayhap. But isn&#8217;t that just a best guess?</p>
<p>My dream design (and between &#8220;Kal-El&#8221; and Bulldozer, I hope we&#8217;re moving toward) is a TRUE modular design where I&#8217;m able to specify that:</p>
<p><strong>&#8220;Hey, I&#8217;m about to play a game, clock two cores up to 4.5Ghz and shut the rest down.&#8221;</strong></p>
<p><strong>&#8220;I want to play a game I know sucks across multiple cores, so crank one core up to 5Ghz and shut the rest off.&#8221;</strong></p>
<p>We have &#8216;Profiles&#8217; for video drivers, why not for CPU&#8217;s? We&#8217;re getting close, we&#8217;re on the road there between the mobile space and new desktop designs, but we&#8217;re not there yet.</p>
<p>&nbsp;</p>
<h2>That being said&#8230;</h2>
<p>Although the raw performance numbers are disappointing, software isn&#8217;t optimized for it and it looks like we won&#8217;t see it really shine until Windows 8 comes out, I still think there&#8217;s some points that people should be excited about from Bulldozer. The modular design really sets the stage for the future of the x86 architecture and scalable CPU&#8217;s going forward. My only wish was that CPU designiers were masters of their own destiny, versus being beholden to software vendors (specifically Microsoft) in order for their technology to shine.</p>
<p>Hmmm, come to think of it, that one paragraph sums up my feelings on the topic. Could have saved some space on the internets. Oh well <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="su-linkbox" id="post-480-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/10/throwing-amd-bulldozer-a-bone/&quot;&gt;Throwing AMD Bulldozer A Bone&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/10/throwing-amd-bulldozer-a-bone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Did your Minecraft Redstone Circuit Stop Working?</title>
		<link>http://www.enusbaum.com/blog/2011/10/did-your-minecraft-redstone-circuit-stop-working/</link>
		<comments>http://www.enusbaum.com/blog/2011/10/did-your-minecraft-redstone-circuit-stop-working/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 14:41:40 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Minecraft]]></category>
		<category><![CDATA[Minecraft Bugs]]></category>
		<category><![CDATA[NOT Gate]]></category>
		<category><![CDATA[Redstone Circuit]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=475</guid>
		<description><![CDATA[I was playing Minecraft recently on a Survival Multi-Player (SMP) server running the latest Minecraft Beta (1.8.1) and noticed after I logged in that Redstone circuits that had been working fine previously had just stopped working. It appeared that the &#8220;NOT Gates&#8221; would stop working on the seventh cycle, at which point the &#8220;NOT Gate&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>I was playing <a title="Homepage -- Minecraft" href="http://www.minecraft.net/" target="_blank">Minecraft</a> recently on a Survival Multi-Player (SMP) server running the latest Minecraft Beta (1.8.1) and noticed after I logged in that <a title="Minecraft Wiki -- Redstone Circuits" href="http://www.minecraftwiki.net/wiki/Redstone_circuits" target="_blank">Redstone circuits</a> that had been working fine previously had just stopped working. It appeared that the &#8220;NOT Gates&#8221; would stop working on the seventh cycle, at which point the &#8220;NOT Gate&#8221; would stop working and the <a title="Minecraft Wiki -- Redstone Torch" href="http://www.minecraftwiki.net/wiki/Redstone_%28Torch%29" target="_blank">Redstone Torch</a> wouldn&#8217;t re-light.</p>
<p>I scoured the inretnets for a while and couldn&#8217;t find an answer, if only because the search term was probably tough to parse. An example being: &#8220;Minecraft NOT Gates not working&#8221; <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>THAT BEING SAID, I finally was able to source a video by a user on YouTube by the name of &#8220;Moleculor&#8221; in which he demonstrates the same issue.</p>
<p><iframe src="http://www.youtube.com/embed/JJVy0nxJ_ZM" frameborder="0" width="560" height="315"></iframe></p>
<p>Luckily, this YouTube Video finally pointed to me at the official bug report on the issue <a title="Mojang Bug Report -- Redtone Torch Burnout" href="http://getsatisfaction.com/mojang/topics/redstone_torch_burnout_for_no_reason">here</a>.</p>
<p>Essentially the issue is caused when a Server Admin uses the &#8220;/time set&#8221; command, which mucks with the internal timers when the time gets shifted. The only way to fix the Redstone circuits is to restart the server and to prevent it from happening again, your server admins will need to stop using the &#8220;/time set&#8221; command until this defect is fixed.</p>
<p>Hope this helps other folks out there as well.</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="su-linkbox" id="post-475-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/10/did-your-minecraft-redstone-circuit-stop-working/&quot;&gt;Did your Minecraft Redstone Circuit Stop Working?&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/10/did-your-minecraft-redstone-circuit-stop-working/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why alternatives to Bitcoin are Pyramid Schemes</title>
		<link>http://www.enusbaum.com/blog/2011/08/why-alternatives-to-bitcoin-are-pyramid-schemes/</link>
		<comments>http://www.enusbaum.com/blog/2011/08/why-alternatives-to-bitcoin-are-pyramid-schemes/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 00:52:13 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[alternative blockchain]]></category>
		<category><![CDATA[bitcoin alternative]]></category>
		<category><![CDATA[i0coin]]></category>
		<category><![CDATA[ixcoin]]></category>
		<category><![CDATA[mining]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=465</guid>
		<description><![CDATA[I&#8217;m sure you&#8217;ve all heard the news swirling around the usual Bitcoin (BTC) related news outlets that there are a myriad alternative Crypto-currencies available now (referred to colloquially as &#8220;alt blockchains&#8221;). Popular ones being IXcoin, I0coin and Solidcoin to name a few, all touting the reasons why users should jump the Bitcoin ship over to [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_466" class="wp-caption alignright" style="width: 160px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/08/scrooge-mcduck-christmas-carol.jpg"><img class="size-thumbnail wp-image-466" title="Scrooge loves alt blockchains" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/08/scrooge-mcduck-christmas-carol-150x150.jpg" alt="Scrooge loves alt blockchains" width="150" height="150" /></a><p class="wp-caption-text">Scrooge loves alt blockchains</p></div>
<p>I&#8217;m sure you&#8217;ve all heard the news swirling around the usual Bitcoin (BTC) related news outlets that there are a myriad alternative <a title="Wikipedia - Crypto-Currency" href="http://en.wikipedia.org/wiki/Crypto-currency" target="_blank">Crypto-currencies</a> available now (referred to colloquially as &#8220;alt blockchains&#8221;). Popular ones being IXcoin, I0coin and Solidcoin to name a few, all touting the reasons why users should jump the Bitcoin ship over to their new ark on the path to cash laden greener pastures.</p>
<p>So what&#8217;s the catch?</p>
<p>If you&#8217;re currently working, mining or trading on any of these Bitcoin alternatives and haven&#8217;t asked yourself that question, then please read on with an open mind. If you&#8217;re currently looking into these new alternatives but are unsure, I hope the information I&#8217;m able to provide gives you enough knowledge to make your own informed decision.</p>
<p><span id="more-465"></span>I wanted to title this blog entry &#8220;Why Alternatives to Bitcoin are Horse Shit&#8221;, but I thought that might show a bit of a bias&#8230; that and Google doesn&#8217;t exactly give pages with swear words in them a prominent page rank <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  But the fact of the matter is, it&#8217;s the truth.</p>
<p>I&#8217;ll start with saying that Bitcoin isn&#8217;t perfect. It&#8217;s very literally a Version 1.0 of Crypto-Currency and broke a lot of new ground in how we view payment online and fiat currencies in general. From the growth of Bitcoin over the past year, several shortcomings in the architecture of the protocol as well as the client application have come to light. Dan Kaminsky actually gave a great presentation at this years toorcon in Seattle on the topic of Bitcoin in which he went into detail on Bitcoin and issues related to. You can view the slides for his presentation <a title="Dam Kaminsky - Thoughts on Bitcoin (toorcon)" href="http://www.slideshare.net/dakami/bitcoin-8776098" target="_blank">here</a>.</p>
<p>It&#8217;s important that you read the slides from his presentation because the issues outlined within ARE valid issues with Bitcoin and the current implementations of crypto-currency. For those who areï¿½ too lazy to read it, a couple issues of note:</p>
<ul>
<li>High Bandwidth Costs &#8211; Since all transactions are downloaded by all notes, even at 1/100th the volume of VISA&#8217;s transactions would equate to 10MB/sec network traffic PER NODE.</li>
<li>High Storage Requirements &#8211; Currently a new client has to download the entire 200MB block chain, which will only go up over time. At high volume, the block chain could grow up to 1TB per day.</li>
</ul>
<p>So obviously there&#8217;s room for improvement within Bitcoin, I don&#8217;t think anyone would argue against that.</p>
<p>At this point you&#8217;d think that alternatives to Bitcoin would address the obvious shortcomings to the core of what Bitcoin is, right? Wrong.</p>
<p>I&#8217;ll say this up front: <strong>No Bitcoin fork to date has addressed any shortcomings within the Bitcon protocol.</strong></p>
<p>If not make the Bitcoin protocol/system better, then what did they change?</p>
<ul>
<li><a title="Homepage -- Ixcoin" href="http://ixcoin.org/" target="_blank">IXcoin</a></li>
</ul>
<ul>
<li>Shorter Maturity Period &#8211; Where as Bitcoin will take until 2033 to have all blocks mined and available in the pool, IXcoin will reach maturity by 2013</li>
<li>This means that people mining IXcoin will earn them at a much faster rate than Bitcoin</li>
<li>It&#8217;s worth a note here that the creator of IXcoin mined over 500,000 coins for himself before making IXcoin public under the guise of &#8220;using them for bounties on improvements&#8221;</li>
<li><a title="Homepage -- I0coin" href="http://forum.i0coin.org/" target="_blank">I0coin</a></li>
</ul>
<ul>
<li>Clone of IXcoin but without 500k blocks mined before opening it to the public</li>
<li><a title="Homepage -- Solidcoin" href="http://solidcoin.info/" target="_blank">Solidcoin</a></li>
</ul>
<ul>
<li>Faster transaction confirmation</li>
<li>Twice daily difficulty re-targets</li>
<li>Maturation by 2022</li>
</ul>
<p>Out of these three alternatives, one thing becomes clear to me right away: People who created these clones didn&#8217;t do so to make Bitcoin better, they did it to make money&#8230; quickly.</p>
<p>I mean seriously, look at those features! Not a single one of them addresses critical long term growth issues that would be vital to the lasting survival of a Crypto-currency. The only modifications these alternatives provide for is faster payout, faster transaction confirmation and the ability to get more coins out to those who are &#8220;daring&#8221; enough to make the jump.</p>
<p>The underlying motivator here is Greed. A lot of people are very bitter that they missed the early days of Bitcoin where difficulty was below 100 and someone could solo mine and earn thousands of Bitcoins. So when the &#8220;Bubble&#8221; came, these fortunate few were in the perfect position to cash in on their bet. As Bitcoin matures along with the marketplace that trades it, price fluctuations, high difficulty and downward pressure on the price means the gold rush is over. This also created the opportunity of alternatives to cash in.</p>
<p>So back to the original point of my post, that these alternatives, if not TRUE alternatives or next evolutions of Crypto-currency need an audience and interest before they become worth anything to anyone. So as with any <a title="Wikipedia - Pyramid Scheme" href="http://en.wikipedia.org/wiki/Pyramid_scheme" target="_blank">pyramid scheme</a>, the creator (especially in the case of IXcoin) is in a position to make the most money. From there, the word needs to be spread to more people, they need to spread it to more people and so on. So over time, those who got in early are in the position to make the money money (even if just a couple hundred dollars) and those who are in late are left trying to earn the same rate (or less) in BTC.</p>
<p>I&#8217;m not here to hate on all alternative block chains, but really just call into question the reason for their existence. I don&#8217;t buy their veiled reasons for technical superiority when it&#8217;s blatantly obvious that they only exist for people to earn more &#8220;coins&#8221; faster. I think people willing to take the gamble on alternative block chains need to really look into <a title="Wikipedia - Hyperinflation" href="http://en.wikipedia.org/wiki/Hyperinflation" target="_blank">hyperinflation</a> throughout history.</p>
<p>All that being said, I&#8217;m not sold on these alternatives to Bitcoin. They are slathered with greed under a thin veil of false technical merit. My hope is that one day there WILL be an alternative to Bitcoin that addresses some of the fundamental issues that Dan Kaminsky brought up. Solutions to these issues would make Bitcoin more viable in a fast moving, high volume global market. Until then, we&#8217;re just left with a bunch of &#8220;Get Rich Quick&#8221; pyramid schemes.</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="su-linkbox" id="post-465-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/08/why-alternatives-to-bitcoin-are-pyramid-schemes/&quot;&gt;Why alternatives to Bitcoin are Pyramid Schemes&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/08/why-alternatives-to-bitcoin-are-pyramid-schemes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why the idea of FPGA Bitcoin Mining is stupid</title>
		<link>http://www.enusbaum.com/blog/2011/08/why-the-idea-of-fpga-bitcoin-mining-is-stupid/</link>
		<comments>http://www.enusbaum.com/blog/2011/08/why-the-idea-of-fpga-bitcoin-mining-is-stupid/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 20:41:56 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Bitcoin ASIC]]></category>
		<category><![CDATA[Bitcoin Mining]]></category>
		<category><![CDATA[FPGA Mining]]></category>
		<category><![CDATA[GPU Mining]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=459</guid>
		<description><![CDATA[Field Programmable Gate Arrays (FPGA) have been around for quite some time now and have seen wide deployment as a middle ground between utilizing an existing platform (ARM comes to mind) or investing to have a custom ASIC created. Since Bitcoin Mining has boomed, there has been whispers of a fabled &#8220;great FPGA grid&#8221; that [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_460" class="wp-caption alignleft" style="width: 160px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/08/bitcoinskynet.png"><img class="size-thumbnail wp-image-460" title="SKYNET BITCOIN MINER: ONLINE" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/08/bitcoinskynet-150x150.png" alt="SKYNET BITCOIN MINER: ONLINE" width="150" height="150" /></a><p class="wp-caption-text">SKYNET BITCOIN MINER: ONLINE</p></div>
<p>Field Programmable Gate Arrays (FPGA) have been around for quite some time now and have seen wide deployment as a middle ground between utilizing an existing platform (ARM comes to mind) or investing to have a custom ASIC created. Since Bitcoin Mining has boomed, there has been whispers of a fabled &#8220;great FPGA grid&#8221; that was going to ruin the Mining marketplace and dominate the Bitcoin economy.</p>
<p>The problem is that FPGA&#8217;s are terribly inefficient. Let me explain why, then let you all in on a little secret.</p>
<p><span id="more-459"></span></p>
<p>The general idea behind FPGA in regards to Bitcoin Mining is that one could create hardware that is specific and dedicated to SHA-256 hashing and tailored for solving Bitcoin Blocks without the overhead of having to do anything else. So in theory, clock for clock a FPGA should be more efficient at solving SHA-256 hash problems then a general processor (x86 in this case). In addition to a clock for clock advantage, it would have a much lower power consumption when compared to general processors as well.</p>
<p>So what&#8217;s the problem?</p>
<p>The issue with Bitcoin Mining is that it&#8217;s all about being cost effective. Where as general processors have lower startup costs (dedicated ATI GPU&#8217;s for example) and higher operational costs due to power consumption, FPGA&#8217;s have a higher startup cost (~$60-$100 per chip currently at 100 Mhash/sec) with a lower operational cost, but how much lower?</p>
<p>Your top performing ATI Video Card consumes 375 watts and processes 750 Mhash/sec, compared to a Xilinx XC6VLX240T-1FFG1156 FPGA chip which can crank out 375 Mhash/sec while only sipping 16 watts. Sounds like an obvious choice, right? Did I mention that both the Xilinx FPGA and the ATI 6990 cost $1000?</p>
<p>So the question here becomes the same as when buying a Hybrid car: How long would it take you to recover the initial startup cost over time?</p>
<p>Using the <a title="bitcoinX.com -- Bitcoin Profitability Calculator" href="http://bitcoinx.com/profit/index.php" target="_blank">Bitcoin Profitability Calculator</a> over at <a title="bitcoinX.com -- Homepage" href="http://bitcoinx.com/" target="_blank">bitcoinX.com</a>, I crunched the numbers and here&#8217;s where we&#8217;re at (assuming $0.10 kw/h energy rate and difficulty doubling every 12 months):</p>
<p><strong>6990 Break Even Point:</strong> 1 Year, 1 Month</p>
<p><strong>FPGA Break Even Point:</strong> 2 Years, 7 Months</p>
<p>So the other end of the spectrum is developing a custom ASIC. <a title="Chip Design Magazine -- Navigating the Silicon Jungle: FPGA or ASIC?" href="http://chipdesignmag.com/display.php?articleId=115&amp;issueId=11" target="_blank">This article</a> over at Chip Design Magazine has a fantastic overview of why people would choose an ASIC vs. FPGA and vice versa. The Bitcoin specific part of this is that the Bitcoin system itself has a way of devaluing an investment over time by adjusting the difficulty so there&#8217;s a consistent number of blocks solved within a time frame. Currently, it seems it wants to keep things at ~5.5-6 blocks per hour.</p>
<p>This means that if someone were to invest in an ASIC computing grid that took over 90% of the Bitcoin network hash rate, all that would mean is that once the difficulty adjusts, they would get 90% of the 5.5-6 blocks per hour. So there&#8217;s a big, big disincentive for someone to make the investment in any dedicated hardware.</p>
<p>In the end, custom solutions are a perfect example of being Penny Wise and Pound Foolish.</p>
<p>So here&#8217;s the part where I let everyone in on a little secret: Ready?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Are you sure?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Ok, but don&#8217;t say I didnt warn you:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h1>Modern GPU&#8217;s are (essentially) FPGA&#8217;s</h1>
<p>Did I blow your mind? Do you need a minute? <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>What people seem to forget is that modern GPU&#8217;s are essentially FPGA&#8217;s in that you&#8217;re writing a program that will take advantage of a dedicated computing resource for which the management of allocation and assignment is abstracted out through the hardware.</p>
<p>ATI/AMD cards for example make extensive use of Stream Processors (or as they were once called, &#8220;<a title="Wikipedia - AMD FiresSream" href="http://en.wikipedia.org/wiki/AMD_FireStream" target="_blank">Programmable Shaders</a>&#8220;) which allows the equivalent of the FPGA &#8216;cores&#8217; to be programmed and executed on the GPU.</p>
<p>So what we&#8217;re left with is a video card that is also essentially a FPGA that can execute custom programs in a massively parallel environment. And just like Alton Brown, I love a multitasker! So there&#8217;s absolutely no need for FPGA miners as they&#8217;ll never be cost effective and the alternatives yield much higher returns.</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="su-linkbox" id="post-459-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/08/why-the-idea-of-fpga-bitcoin-mining-is-stupid/&quot;&gt;Why the idea of FPGA Bitcoin Mining is stupid&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/08/why-the-idea-of-fpga-bitcoin-mining-is-stupid/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>On the subject of Bitcoin and creating free Money</title>
		<link>http://www.enusbaum.com/blog/2011/08/on-the-subject-of-bitcoin-and-creating-free-money/</link>
		<comments>http://www.enusbaum.com/blog/2011/08/on-the-subject-of-bitcoin-and-creating-free-money/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 03:06:20 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Bitcoin]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[ATI]]></category>
		<category><![CDATA[Bitcoin Mining]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[nVidia]]></category>
		<category><![CDATA[OpenCL]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=454</guid>
		<description><![CDATA[I don&#8217;t want this blog entry to be about explaining Bitcoin (BTC), so I&#8217;ll point you folks looking for more information over to Wikipedia where they have a very in-depth article on the topic. What I will talk about in this post is a story of my involvement in the whole Bitcoin shenanigans that are [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_455" class="wp-caption alignright" style="width: 190px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/08/Bitcoin.png"><img class="size-medium wp-image-455 " title="The All-MIghty Bitcoin (BTC)" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/08/Bitcoin-300x297.png" alt="The All-MIghty Bitcoin (BTC)" width="180" height="178" /></a><p class="wp-caption-text">The All-MIghty Bitcoin (BTC)</p></div>
<p>I don&#8217;t want this blog entry to be about explaining Bitcoin (BTC), so I&#8217;ll point you folks looking for more information over to Wikipedia where they have a very in-depth <a title="Wikipedia - Bitcoin" href="http://en.wikipedia.org/wiki/Bitcoin" target="_blank">article on the topic</a>. What I will talk about in this post is a story of my involvement in the whole Bitcoin shenanigans that are happening on the net and where I think I&#8217;ll go with, or leave it.</p>
<p>In early June of this year I caught wind of Bitcoin really taking off through a friend who had started experimenting with solo mining using his CPU. At the time, I had thought nothing much of it and brushed it off as just another distributed project along the lines of SETI@Home or Folding@Home.</p>
<p>Over the course of a week or two, through bloggers and twitter feeds the whispers in the wind of Bitcoin had turned into a full on fog horn! Bitcoin was a modern day gold rush and if you weren&#8217;t in on it, you were missing out! The numbers at the time were ridiculous and it sounded like you&#8217;d be stupid not to get in on it. Earnings for miners being upwards of $2000 per month, people investing thousands of dollars in new hardware and obviously the news media coverage of the less glamorous use of Bitcoin&#8230; that of the drug trade through the Silk Road.</p>
<p>I didn&#8217;t want to be the last person to the party, so I jumped in.</p>
<p><span id="more-454"></span></p>
<h1>Stranger in a strange land</h1>
<p>I started off like most, running Bitcoin mining clients on any bit of hardware I could get my hands on. My home CPU (Intel Q6600, about 12Mhash/sec),  GPU (nVidia GTX295, 64Mhash/sec) and&#8230; other computers I had access to at the time. The most powerful being a 24-core Xeon 2.4Ghz (62Mhash/sec). I was on my way, spooling up the printing presses and waiting for the money to start rolling in.</p>
<p>Obviously as the days passed, I spent more time on the <a title="Link - Bitcoin Talk (forums)" href="http://bitcointalk.org/" target="_blank">Bitcoin Forums</a> (now bitcointalk.org) researching how I could squeeze more power out of my small cluster of machines. At the time, people were crazy with mining and were buying up applicable hardware left and right. I&#8217;ve been an nVidia owner for the better part of 15 years and spit nothing but hateful vitriol when talking about ATI (they really burned me with their shitty drivers for my ATI All-In-Wonder back when Windows 2000 came out). When I read that the REAL money is to made in GPU mining and the only cards that can do this right were ATI/AMD Radeon based cards&#8230; I was a bit taken aback. Was I really going to have to put my (albeit, probably dated and baseless) biases aside for the sake of getting on the internet bandwagon?</p>
<p>After a day or two of thorough research of topics such as OpenGL, CUDA, AMD APP Engine and the architectural differences between AMD/ATI based video cards and nVidia, I was able to sell myself on the <a title="Bitcoin Wiki - AMD vs. nVidia for GPU Mining" href="https://en.bitcoin.it/wiki/Why_a_GPU_mines_faster_than_a_CPU#Why_are_AMD_GPUs_faster_than_Nvidia_GPUs.3F" target="_blank">technical merit</a> for the requirement and made the investment. My first card was a Gigabyte 6870, which wasn&#8217;t the OPTIMAL mining card, but at the time, my plan was to replace my desktop card which would give me the ability to still game when I wanted to and mine with the spare cycles and downtime.</p>
<p>Within a couple days, I had generated my first Bitcoin!</p>
<p>&#8230;and a couple days later, something happened that I wasn&#8217;t ready for: The Epic Difficulty increase of 2011.</p>
<p>See, without getting too technical, the Bitcoin network has a way to adjust how frequently Bitcoins are generated. As the computing power of the network skyrocketed, it adjusted to keep the rate of generation steady (which is roughly 5.5-6 blocks per hour). The difficulty doubled, meaning that my earning rate was cut in half.  The difficulty continued to increase 40-50% per week as people kept joining up and throwing their computing power into the fray.</p>
<p>During all this, another notable event in Bitcoin history occurred: The bubble burst.</p>
<p>Bitcoin peaked at around $35 per BTC and within a matter of a couple days, came crashing down to almost half the previous price. Between the difficulty increases and the price crash, I had to come to reality that my get rich quick scheme wasn&#8217;t as full proof as I had thought.</p>
<p>I decided to go all in for the long haul and invested in additional hardware to setup a dedicated &#8220;mining rig&#8221; (computer dedicated to mining for Bitcoins). My final choice was to run two ATI 6870&#8242;s and overclock them, which gave me a total computational power of about 600 Mhash/sec. The decision to run two 6870&#8242;s wasn&#8217;t the smarted in terms of Bitcoining as the cost/performance ratio wasn&#8217;t the highest, but I already had one 6870 and at the time they were still readily available.</p>
<p>So it was at this point I settled in for the long haul an let the mining rig work day and night.</p>
<h1>Understandig</h1>
<p>A month passed and over that period, I spent a lot of time doing research on Bitcoin. Research on both the technical operation of mining for Bitcoins and the financial side of things (profitability and economics). I had amassed my first 10 BTC and was ready to cash in my first haul. After transaction fees, I was able to bring in a little over $200 from my first month. This more than paid off the first video card and put me on the path to paying off the second. Additionally though, it really brought me back down to earth as far as MY future with Bitcoin.</p>
<p>Due primarily to market instability, I decided to cash out every 1 BTC as I created them. My goal being that I needed to pay off the initial investment first and foremost before speculating. Over the next 30-45 days, I witnessed Bitcoin priced sliding slowly week over week from $20 to as low as $6.50 at points.</p>
<p>Mining is all about profitability, and keeping profitable means running efficiently. The primary drawback to mining is energy cost, being that you&#8217;re paying for the electricity that is being used to generate Bitcoins. Living in Texas, I have a flat rate of $0.091 per kw/h and at current difficulties, I could still turn a (albeit small) profit as long as exchange rates for Bitcoin stay above $3.50 per BTC. So being efficient meant no longer CPU mining and cutting back as much power usage from the mining rig as possible (minimal case fans, underclock the CPU and other energy saving measures).</p>
<p>All these points brought Bitcoin mining down from the altars of genius money making schemes to almost QuickBook like accounting of business operation and profitability. It sucked the fun out of it, but the number still didn&#8217;t lie: I was making money.</p>
<h1>Looking Forward</h1>
<p>So here I am two moths (to the day) after I first started down this rabbit hole that is Bitcoin and Bitcoin mining. I&#8217;ve learned a couple important lessons from reading about other users and also my own personal experience:</p>
<ol>
<li>Bitcoin Mining will not make you rich &#8211; It just won&#8217;t. Your goal for Bitcoin mining should be to recover you initial investment and just enjoy anything after that. Because of the network adjustments for difficulty, your hardware value depreciates over time. When I first started, at sky high values and low difficulties, it would take WEEKS to pay off the cost of a mining rig. These days, you could expect two to three months to pay off a mid-sized rig and even then, you&#8217;re at the mercy of how many people are in the pool.</li>
<li>Don&#8217;t go all in &#8211; I&#8217;ve read many threads about people who&#8217;ve spent -thousands- of dollars in hardware to mine for Bitcoins. The days of being able to make your money back on hardware investments like that is long, long gone. Barring a doubling in market price, it&#8217;s just not something I would invest large amounts of money in, as it could take YEARS to see returns (now THAT&#8217;S speculating).</li>
<li>The volatility of the market place wreaks havoc on mining profits, but is the speculative traders wet dream &#8211; Literally, the opportunity exists almost daily for traders to make a 30-40% profit based on price swings. A buy/sell order of 200,000BTC can swing the market literally by a couple dollars, meaning those sitting on fiat currency have an opportunity DAILY to buy low sell high.</li>
</ol>
<p>Where am I at? Well, to date I&#8217;ve made back the money I invested on the video cards. So I&#8217;ll consider myself lucky on that front.</p>
<p>I&#8217;ve decided from this point in, I&#8217;m going to just sit on my Bitcoins as they&#8217;re generated to see what happens. My risk from this would be possibly missing out on current prices ($9.50/BTC at the time of writing this), but at the same time I also gamble on the reward of Bitcoins eventually going up in value. So risking a possible &#8220;loss&#8221; of $0 since I&#8217;m already paid off (well, less energy cost which is negligible) for a potential profit of more than $0. I&#8217;ll take them odds.</p>
<p>So, I&#8217;m glad I got in when I did because I think if I had got in any later, I would be writing a much more frustrated post on the topic. My wife would probably be chiming in as well <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Do I wish I got in earlier? Of course! But that&#8217;s the story on investments, isn&#8217;t it? <em>SHOULD HAVE DONE XYZ WHEN I HAD THE CHANCE!</em></p>
<p>Do I think people should get in/out? That&#8217;s a decision that needs to be made on a person to person basis due to the number of variables that are involved (start-up cost, energy costs, market conditions, etc., etc). I will say that I think it&#8217;s a much higher risk these days due to the continued slide in price paired with the high difficulties.</p>
<p>Personally, I hope more people throw in the towel. Bigger piece of the pie for me <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Cheers!</p>
<div class="su-linkbox" id="post-454-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/08/on-the-subject-of-bitcoin-and-creating-free-money/&quot;&gt;On the subject of Bitcoin and creating free Money&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/08/on-the-subject-of-bitcoin-and-creating-free-money/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Did LulzSec poison Google&#8217;s search results?</title>
		<link>http://www.enusbaum.com/blog/2011/06/did-lulzsec-poison-googles-search-results/</link>
		<comments>http://www.enusbaum.com/blog/2011/06/did-lulzsec-poison-googles-search-results/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 18:15:57 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Reverse Engineering]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[LulzBoat]]></category>
		<category><![CDATA[LulzSec]]></category>
		<category><![CDATA[Poisoned Results]]></category>
		<category><![CDATA[Rainbow]]></category>
		<category><![CDATA[Search Results]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=447</guid>
		<description><![CDATA[I was looking for some more information on LulzSec this afternoon and while poking around Google, my search results went funky (and albeit, more colorful than normal): I thought this might have been some funny business either with my SSH tunnel or Firefox, but I was able to replicate the results using IE and a [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking for some more information on <a title="Homepage -- LulzSec" href="http://lulzsecurity.com/">LulzSec </a>this afternoon and while poking around Google, my search results went funky (and albeit, more colorful than normal):</p>
<div id="attachment_448" class="wp-caption aligncenter" style="width: 440px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/06/lulz.png"><img class="size-large wp-image-448  " title="LulzSec poisons Google?" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/06/lulz-1024x479.png" alt="" width="430" height="201" /></a><p class="wp-caption-text">LulzSec poisons Google?</p></div>
<p>I thought this might have been some funny business either with my SSH tunnel or Firefox, but I was able to replicate the results using IE and a different proxy altogether:</p>
<p style="text-align: center;">&nbsp;</p>
<div id="attachment_449" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/06/lulz2.png"><img class="size-medium wp-image-449 " title="LulzSec poisoned results in IE" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/06/lulz2-300x150.png" alt="" width="300" height="150" /></a><p class="wp-caption-text">LulzSec poisoned Google Results in IE</p></div>
<p style="text-align: left;">The poison itself looks like a CSS or Javascript injection where it  creates a rainbow connected to the search button. The rest of the search  results are skewed.</p>
<p style="text-align: left;">So essentially I was able to replicate the poisoned results multiple times across multiple browsers. You have to search for the term &#8220;LulzSec&#8221; and F5 until you happen to get the result. I imagine this is a case where the Google Index with the poisoned results hasn&#8217;t propagated across the ENTIRE Google farm yet, so you&#8217;ll have to play search results roulette until you get it.</p>
<p style="text-align: left;">This is either something weird going on at Google, or LulzSec is indeed the most badass group of hackers this world has ever known. Poisoning the Google Search results is like the Holy Grail of awesome hacks! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="su-linkbox" id="post-447-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/06/did-lulzsec-poison-googles-search-results/&quot;&gt;Did LulzSec poison Google&#8217;s search results?&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/06/did-lulzsec-poison-googles-search-results/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>.NET Remoting and F5 Load Balancers</title>
		<link>http://www.enusbaum.com/blog/2011/04/net-remoting-and-f5-load-balancers/</link>
		<comments>http://www.enusbaum.com/blog/2011/04/net-remoting-and-f5-load-balancers/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 16:22:21 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[C# Programming]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[.NET Remoting]]></category>
		<category><![CDATA[F5 Load Balancer]]></category>
		<category><![CDATA[Load Balancing]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=437</guid>
		<description><![CDATA[Some of the topics I post on here are usually only of my interest, but once in a while I&#8217;ll give back to the community on issues that had me ripping my hair out. Recently I was working on an application that utilized .NET Remoting to access the middle tier of the application through an [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_439" class="wp-caption alignleft" style="width: 318px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2011/04/headdesk.jpg"><img class="size-full wp-image-439  " title="*headdesk*" src="http://www.enusbaum.com/blog/wp-content/uploads/2011/04/headdesk.jpg" alt="headdesk" width="308" height="231" /></a><p class="wp-caption-text">.NET Remoting + F5 Load Balancer == *headdesk*</p></div>
<p>Some of the topics I post on here are usually only of my interest, but once in a while I&#8217;ll give back to the community on issues that had me ripping my hair out. <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Recently I was working on an application that utilized .NET Remoting to access the middle tier of the application through an F5 Load Balancer. For whatever reason, the .NET Remoting application kept dropping the connection with errors such as:</p>
<p><strong>&#8220;An existing connection was forcibly closed by the remote host&#8221;</strong></p>
<p>Through trouble shooting we were able to determine that it was definitely and issue with the F5 Load Balancer handling the connections being established by the .NET Remoting host.<strong></strong></p>
<p>We were able to resolve the issue by disabling the <a title="F5.com Knowledge Base -- Overview of the OneConnect Profile" href="http://support.f5.com/kb/en-us/solutions/public/7000/200/sol7208.html" target="_blank">OneConnect</a> profile on the F5 Load Balancer for the .NET Remoting VIP. Once the OneConnect profile was disable, the .NET Remoting application was able to hit the Remoting Service behind the VIP without issue.<strong></strong></p>
<p>Hope this helps anyone out there having the same issue!<strong></strong></p>
<p><strong>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
</strong></p>
<div class="su-linkbox" id="post-437-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/04/net-remoting-and-f5-load-balancers/&quot;&gt;.NET Remoting and F5 Load Balancers&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/04/net-remoting-and-f5-load-balancers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google TV &#8212; Another stop in my quest to find my Home Theater Unicorn</title>
		<link>http://www.enusbaum.com/blog/2011/02/google-tv-another-stop-in-my-quest-to-find-my-home-theater-unicorn/</link>
		<comments>http://www.enusbaum.com/blog/2011/02/google-tv-another-stop-in-my-quest-to-find-my-home-theater-unicorn/#comments</comments>
		<pubDate>Mon, 21 Feb 2011 17:47:35 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[1080p MKV]]></category>
		<category><![CDATA[Google TV]]></category>
		<category><![CDATA[HD Video]]></category>
		<category><![CDATA[HTPC]]></category>
		<category><![CDATA[Logitech Revue]]></category>
		<category><![CDATA[Media Player]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=431</guid>
		<description><![CDATA[As I&#8217;ve mentioned in previous posts, I&#8217;ve been using a home theater PC/Media player in one form or another over the last couple years to stream videos off my network to my home theater. Devices I&#8217;ve used at length: HTPC running Windows Media Center Western Digital TV Live! Both of those devices were OK, but [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve mentioned in previous posts, I&#8217;ve been using a home theater PC/Media player in one form or another over the last couple years to stream videos off my network to my home theater.</p>
<p>Devices I&#8217;ve used at length:</p>
<ul>
<li>HTPC running Windows Media Center</li>
<li><a title="Amazon.com -- Western Digital TV Live!" href="http://www.amazon.com/gp/product/B002KKFP9Y?ie=UTF8&amp;tag=ericnusbsoft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002KKFP9Y" target="_blank">Western Digital TV Live!</a></li>
</ul>
<p>Both of those devices were OK, but I felt that both had their limitations. Either lacking in features or usability. Both required use of their own inputs on my home theater and thus, were not very well integrated into the whole experience. Issues such as occasionally having to plug in a keyboard to the HTPC to address an issue, or the Western Digital TV Live not having certain features, like a web browser or Netflix (which I believe the newer models have).</p>
<p>My only expectation for a HTPC/Meida player really are:</p>
<ol>
<li>Ease of Use</li>
<li>Integration into Home Theater</li>
<li>Ability to stream many media formats (up to 1080p) and play back smoothly</li>
<li>Ability to stream online content (specifically, Netflix)</li>
<li>Web Browser</li>
</ol>
<p>I recently was in San Diego visiting friends and one of them had the new <a title="Amazon.com -- Logitech Revue" href="http://www.amazon.com/gp/product/B0040QE98O?ie=UTF8&amp;tag=ericnusbsoft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0040QE98O" target="_blank">Logitech Revue</a> Google TV based device hooked up! I was intrigued because I&#8217;m a bit of a gadget guy and anything home theater related immediately catches my eye. After poking around with it for a half hour or so, I decided once the funds became available that I would purchase one myself and give it a whirl.</p>
<p>What really set the Google TV apart for me is that it&#8217;s not just another home theater component, but more an extension of your current DVR/STB by living &#8220;in-line&#8221; between your STB and your Television. In my eyes, this is what makes it a more valuable addition to any home theater.</p>
<p>So let&#8217;s dive into my expectations and how they were met:</p>
<h2><span id="more-431"></span>1. Ease Of Use / 2. Integration into Home Theater</h2>
<p>The<a title="Amazon.com -- Logitech Revue" href="http://www.amazon.com/gp/product/B0040QE98O?ie=UTF8&amp;tag=ericnusbsoft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0040QE98O" target="_blank"> Logitech Revue</a> itself was fairly simple to setup. It has two HDMI ports on the back (in from your STB and out to your Receiver/TV), an optional optical out port if you use an external device for sound processing and an optional IR blaster port (and IR blaster) if the IR ports on the box are unable to reach your device. My setup has the Google TV living directly between my DirecTV DVR and my Denon AVR-2308CI Receiver, and the IR ports were able to control both devices without a problem.</p>
<p>Once it was all hooked up, the Logitech Revue automatically detected and set my resolution to 1080p when starting the setup. The setup itself is fairly easy and goes even faster if you have a &#8220;Google Account&#8221; before you start the process. All my devices and their IR codes were supported and was a snap to setup.</p>
<p>Once everything is booted up, I was fairly impressed. The UI itself looks like a next generation TiVo and is fairly simple to navigate. I think the easiest way to get around on Google TV is to use their &#8220;spotlight-like&#8221; search which lets you jump anywhere from Web Browsing, tuning in a channel on your DVR or going into an Application.</p>
<p>Features like PIP while web browsing and continuing playing the background make it super easy to use and a great user experience.</p>
<h2>3. Ability to stream media from network resources</h2>
<p>The main reason I use a HTPC/Media player is to play back 1080p MKV content from my Network Storage Device. The biggest question to me was, &#8220;Could the Logitech Revue, with it&#8217;s 1.2Ghz Intel Atom processing ability, be able to play 1080p MKV files over the network without any skipping or frame drops?&#8221;</p>
<p>The answer is, <span style="text-decoration: underline;"><strong>IT CAN!</strong> </span>The Logitech Revue can play 1080p MKV files no problem! This is accomplished using the Logitech Media Player application that comes installed by default on the Logitech Revue. The only downside is that the Logitech Media Player does not support SMB shares (yet, hopefully), so you&#8217;ll need a DLNA server on your network to serve up the content. The Logitech Media Player was able to see my <a title="Website -- Twonky Server" href="http://www.twonky.com/products/twonkyserver/default.aspx" target="_blank">Twonky</a> based DLNA server without issue and stream all the media containers and formats I had available (DivX/h264/AVC/MPEG/AVI/MKV/MPG).</p>
<p>The only technical shortfall I found was the lack of support for playing back DTS streams. AC3/Dolby were supported without issue, but it&#8217;s something to keep in mind.</p>
<h2>4. Ability stream online content</h2>
<p>This is a mixed bag and I&#8217;ll touch more on it in my final thoughts, but overall I was pleased with the offerings so far. The Netflix and Pandora apps built into Google TV worked great and I was able to use both without a single issue. Netflix is integrated directly into the Main Menu, so you can see your recommendations right off the bat.</p>
<p>The Web Browser (Chrome) is fully enabled with Flash and is able to play <span style="text-decoration: underline;">most</span> online content from major providers, such as YouTube, Comedy Central, NBC and so on. There are some licensing issues, so sites like Hulu are blocked.</p>
<h2>5. Web Browser</h2>
<p>This is one of those areas where I&#8217;ve never REALLY used the functionality on previous boxes. I never invested in or wanted a full size keyboard laying around my living room to support my HTPC, and other devices such as the Western Digital TV Live! simply didn&#8217;t have a browser installed. So this was new ground for me and I was curious how it would work out using my TV for regular browsing.</p>
<p>Oddly enough, it seemed weird at first but then the other day my Macbook&#8217;s battery went dead and I decided to sit and browse through Google TV. I found the experience very fluid and natural. The ability to zoom in and still have a touch pad mouse made it all feel very familiar. I missed some things, such as tabs and small things like that, but overall I didn&#8217;t run into any issues using the browser for casual browsing.</p>
<p>The only drawback I had was that I found the experience in the browser to be much slower and less responsive than the rest of the system. Once your video was up and playing, you can enable full screen playback without a hiccup. So I&#8217;m not entirely sure on the reasons for that, but I imagine it can be addressed in coming releases.</p>
<p>Overall, I&#8217;ve been really pleased with the purchase of the Google TV powered Logitech Revue. I think your experience and reception of the device will depend upon your expectations. A replacement for your STB television provider it is not, at least, not yet. What is is (currently) is a power enhancement to your current Home Theater giving you greater ability and features without having to switch from Input to Input and utilize different devices to accomplish a quick task.</p>
<p>Watching a movie and want to look up who a certain actor is? Now that information is available on screen.</p>
<p>Just missed the end of your show and want to know when it&#8217;ll be on again? I bet you $20 that the Google TV software can find the next showtime faster using the &#8220;Spotlight-like&#8221; search than your STB can.</p>
<p>You want to read about the news while watching it? Now you can.</p>
<p>I think if the above reasons are high on your list of desires for a Home Theater component, I think you should give the Google TV powered <a title="Amazon.com -- Logitech Revue" href="http://www.amazon.com/gp/product/B0040QE98O?ie=UTF8&amp;tag=ericnusbsoft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B0040QE98O" target="_blank">Logitech Revue</a> a try.</p>
<p>Cheers! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="su-linkbox" id="post-431-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2011/02/google-tv-another-stop-in-my-quest-to-find-my-home-theater-unicorn/&quot;&gt;Google TV &#8212; Another stop in my quest to find my Home Theater Unicorn&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2011/02/google-tv-another-stop-in-my-quest-to-find-my-home-theater-unicorn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApocBot v0.0 &#8212; Open Source Magic Online Automated Trade Bot Released!</title>
		<link>http://www.enusbaum.com/blog/2010/12/apocbot-v0-0-magic-online-bot-released/</link>
		<comments>http://www.enusbaum.com/blog/2010/12/apocbot-v0-0-magic-online-bot-released/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 16:05:10 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[C# Programming]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[General Programming]]></category>
		<category><![CDATA[General Software]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Magic Online]]></category>
		<category><![CDATA[ApocBot]]></category>
		<category><![CDATA[Automated Trading]]></category>
		<category><![CDATA[Magic The Gathering Online]]></category>
		<category><![CDATA[MTGO]]></category>
		<category><![CDATA[MTGO Trading Bot]]></category>
		<category><![CDATA[Trade Bot]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=407</guid>
		<description><![CDATA[For everyone who&#8217;s been waiting and searching, here it is: ApocBot v0.0 &#8212; The First (not completely working) Open Source MTGO Trade Bot written in C#/.NET! Now that the fanfare is over, let&#8217;s get down to the nitty-gritty. What was with the delay? The truth of the matter is that life just has a way [...]]]></description>
			<content:encoded><![CDATA[<p>For everyone who&#8217;s been waiting and searching, here it is:</p>
<div id="attachment_409" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2010/12/1389_ApocExpSymbol.jpg"><img class="size-medium wp-image-409" title="ApocBot" src="http://www.enusbaum.com/blog/wp-content/uploads/2010/12/1389_ApocExpSymbol-300x279.jpg" alt="ApocBot" width="300" height="279" /></a><p class="wp-caption-text">ApocBot v0.0</p></div>
<h1>ApocBot v0.0 &#8212; The First (not completely working) Open Source MTGO Trade Bot written in C#/.NET!</h1>
<p>Now that the fanfare is over, let&#8217;s get down to the nitty-gritty.</p>
<h2>What was with the delay?</h2>
<p>The truth of the matter is that life just has a way of happening. My desire to play Magic The Gathering: Online waxes and wanes through the years and I started this project shortly after moving across the country. So you can say it was the product of my being bored in the evenings <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Over the course of a few months my interest in this project started to fade as I settled into my new job and had to travel a bit.</p>
<p>I had debated in my mind on how to handle the bot. I know over time it would be a maintenance nightmare as people would require support and updates, which is honestly why I decided to go Open Source with it. For some reason people feel that paying for software implies some form of support! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  In the end, I just stopped working on it because (a) MTGO is just a hobby, so I wasn&#8217;t looking to make money off the bot and (b) I didn&#8217;t want to have to constantly maintain and update the code to work with new versions/UI changes as they come out. That&#8217;s just the lazy bastard I am <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>That being said, I still feel this is an important project because it gives the community at large the ability to finally be more open about automation on MTGO (and possibly other games).</p>
<h2>So what shape is the code currently in?</h2>
<p>Out of the box, the code isn&#8217;t going to work. I&#8217;ll go into the details below on why/what needs to be updated to get it in running shape.</p>
<p>Other than updating some of the code to work with any UI/screen changes, it should still work pretty well! I know it worked the last time I tried to use it (six months ago?).. so I&#8217;m sure with some TLC, someone can get it up and running again.</p>
<h2>And it&#8217;s free?!</h2>
<p>Yep! Anyone is free to download and use the code for ApocBot in their own Magic Online Trading Bots as long as they adhere to the BSD License terms. If anyone is feeling giving, links back to my blog and some Magic Online gratitude would be appreciated! (My MTGO user name is &#8220;<strong>WndrBr3d</strong>&#8220;)</p>
<h1>Download:</h1>
<h4><em>ApocBot and the source code are released under the<strong> BSD License</strong>. Please review the included &#8220;<span style="text-decoration: underline;"><strong>license.txt</strong></span>&#8221; file for terms and conditions. For more information on the <strong>BSD Licenses</strong>, click <a title="OSI -- The BSD License" href="http://www.opensource.org/licenses/bsd-license.php" target="_self">here</a>.</em></h4>
<h1><strong><a href="http://www.enusbaum.com/blog/wp-content/uploads/2010/12/ApocBot.zip">ApocBot v0.0 (Source)</a></strong></h1>
<p><span style="text-decoration: underline;"><strong>Requirements:</strong></span> <strong>Visual Studio 2010</strong> and<strong> .NET 4.0</strong></p>
<p>And now.. the very rough technical details on how it works&#8230;</p>
<p><span id="more-407"></span></p>
<h2>How does it even work?!</h2>
<p>I followed the same basic idea as a lot of the <a title="Homepage -- AutoIT" href="http://www.autoitscript.com/autoit3/index.shtml" target="_blank">AutoIT</a> bots that are out there in the sense that I&#8217;m snapping screen shots and determining what&#8217;s on the screen by creating checksums of specified areas. I figured, <em>&#8220;Hey, if they can make it work in AutoIT, I&#8217;m sure I can make it work in C# even better!&#8221;</em></p>
<p>So using the idea of area checksums, ApocBot can identify what is currently being displayed on the screen and act appropriately.</p>
<p>The basic configuration for ApocBot to run was WindowsXP (Classic Theme) running at 1024&#215;768 (32-bit color depth).</p>
<h2>The Classes/Controllers</h2>
<h3>MTGOController.cs</h3>
<p>The MTGOController class holds the primary logic for ApocBot including the main program loop and all MTGO Object definitions.</p>
<p>On start up, all the MTGO Objects are defined. Currently these are all hard coded but I had planned to eventually move them all to an XML file and just have them <a title="MSDN -- XMLSerializer" href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.deserialize%28v=VS.100%29.aspx" target="_blank">deserialized</a> on start up (any takers on this? <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).. but for now, they&#8217;re all hard-coded.</p>
<p>After everything is setup, the main program loop will start. The basic function is this:</p>
<ol>
<li>Grab a screen shot</li>
<li>Determine the state of the bot (switch statement)</li>
<li>Based upon the state, check the screen for any known events/items to act upon</li>
<li>Sleep 250ms (to avoid CPU spike caused by constant screen polling)</li>
</ol>
<h3>ScreenController.cs</h3>
<p>The ScreenController class holds all the logic required to grab the screen shots and calculate the area checksums.</p>
<h3>MouseKeyboardController.cs</h3>
<p>The MouseKeyboardController class holds all the logic required to make mouse movements and send keys to the program. Hooks into the Windows API are used to simulate the mouse events to the OS.</p>
<h2>The Objects</h2>
<p>There are really three main objects used by ApocBot to know what&#8217;s going on:</p>
<ol>
<li><strong>MTGOScreen </strong>- Represents a screen in MTGO, such as the &#8220;Home&#8221; or &#8220;Trade&#8221; screens (Multiple Areas, Multiple Points)</li>
<li><strong>MTGOArea </strong>- Represents an area on a screen, such as a pop-up dialogue, card graphic or window (Multiple Points)</li>
<li><strong>MTGOPoint </strong>- Represents a point on the screen, such as an &#8220;OK&#8221; or &#8220;Cancel&#8221; button</li>
</ol>
<p>Objects are referenced in the system to main properties: <strong>Name </strong>and <strong>Checksum</strong>.</p>
<p>The checksums that are currently hard-coded might be out of date. You can generate new checksums using the AreaChecksum() method in the ScreenController.</p>
<hr />That&#8217;s it! I&#8217;ll be more than happy to answer any technical questions people might have about the code in the comments area of this post.</p>
<p>Almost forgot! It&#8217;s named &#8220;ApocBot&#8221; because Apocalypse was my favorite Magic: The Gathering expansion! <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cheers!</p>
<div class="su-linkbox" id="post-407-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2010/12/apocbot-v0-0-magic-online-bot-released/&quot;&gt;ApocBot v0.0 &#8212; Open Source Magic Online Automated Trade Bot Released!&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2010/12/apocbot-v0-0-magic-online-bot-released/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>6 Reasons the new AppleTV is a Floppy Turd</title>
		<link>http://www.enusbaum.com/blog/2010/09/6-reasons-the-new-appletv-is-a-floppy-turd/</link>
		<comments>http://www.enusbaum.com/blog/2010/09/6-reasons-the-new-appletv-is-a-floppy-turd/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 20:27:01 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Apple A4]]></category>
		<category><![CDATA[AppleTV]]></category>
		<category><![CDATA[Blu-Ray]]></category>
		<category><![CDATA[HDTV]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[Matroska]]></category>

		<guid isPermaLink="false">http://www.enusbaum.com/blog/?p=393</guid>
		<description><![CDATA[I&#8217;m not an Apple insider nor have I actually used the new AppleTV which was revealed today by Steve Jobs. What I am though is an avid user of multimedia devices on my Home Theater. My current toy of choice is the spectacular Western Digital TV Live!, which literally plays everything*. So I was a [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_397" class="wp-caption alignleft" style="width: 310px"><a href="http://www.enusbaum.com/blog/wp-content/uploads/2010/09/product-product.jpg"><img class="size-medium wp-image-397 " title="AppleTV" src="http://www.enusbaum.com/blog/wp-content/uploads/2010/09/product-product-300x145.jpg" alt="New AppleTV" width="300" height="145" /></a><p class="wp-caption-text">New AppleTV</p></div>
<p>I&#8217;m not an Apple insider nor have I actually used the <a title="Apple.com -- New AppleTV" href="http://store.apple.com/us/browse/home/shop_ipod/family/apple_tv?mco=MTM3NTM1Nzk" target="_blank">new AppleTV</a> which was revealed today by Steve Jobs. What I am though is an avid user of multimedia devices on my Home Theater. My current toy of choice is the spectacular <a title="Amazon.com -- Western Digital TV Live!" href="http://www.amazon.com/gp/product/B002KKFP9Y?ie=UTF8&amp;tag=ericnusbsoft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002KKFP9Y" target="_blank">Western Digital TV Live!</a>, which literally plays <em><strong>everything</strong>*</em>.</p>
<p>So I was a bit excited today to hear that Apple was rolling out a new model of their somewhat lame duck that is AppleTV. What they delivered was a big, fat, floppy turd on the chest of everyone at the conference. I was let down during the demonstration and even more let down after actually reading the technical specifications posted to Apple&#8217;s site.</p>
<p>And on that note, I present my Six Reasons why the new AppleTV is a Floppy Turd.</p>
<h2><span id="more-393"></span><strong>6. Apple has apparently missed the 1080p Wagon</strong></h2>
<p>Since the release of Quicktime 7 Apple has really been focusing it&#8217;s media efforts on HD content. Even Trailers posted to Apple&#8217;s site occasionally come in HD formats (470/720/1080p) and they look FANTASTIC! Anyone with a 1080p capable display can attest to this.  Then why, OH WHY has Apple decided that for an set top box which is supposed to deliver the &#8220;HD content people want&#8221;, would Apple limit the output to 720p @ 30fps?! In the age of 1080p Blu-Ray content and 3D television, Apple has apparently taken the path of &#8220;good enough&#8221; for it&#8217;s hobby device.</p>
<h2><strong>5. Only supports up to H.264 Level 3.1</strong></h2>
<p>This one really blows me away and also plays into my previous point. The standard accepted <a title="Wikipedia -- H.264 Levels" href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Levels" target="_blank">H.264 level</a> for consoles is 4.0 (if not 4.1), which supports the Blu-Ray standard of 1080p @ 24fps in a decent bit-rate. Devices such as <a title="Amazon.com -- Western Digital TV Live!" href="http://www.amazon.com/gp/product/B002KKFP9Y?ie=UTF8&amp;tag=ericnusbsoft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002KKFP9Y" target="_blank">Western Digital TV Live!</a> cost $99 as well, but support these advanced H.264 profiles. Why Apple?</p>
<h2><strong>4. Apple still has a hard-on for MP4 container</strong></h2>
<p>I&#8217;d expect in a device released in the year 2010 to support more container formats than just MP4, but alas, we&#8217;re dealing with Apple. And honestly, we&#8217;re dealing with a two headed monster. First, the Mp4 format is standard so most every console supports it. Even Microsoft has it&#8217;s weight behind the MP4 container due to it&#8217;s formalized standards, despite it&#8217;s technical shortcomings. The second is that other superior container formats, such as <a title="Wikipedia -- Matroska" href="http://en.wikipedia.org/wiki/Matroska" target="_blank">Matroska</a> (MKV) aren&#8217;t exactly &#8220;standardized&#8221;, so major hardware manufacturers are hesitant to adopt it as a supported format. Not to say it HASN&#8217;T been adopted by anyone, there&#8217;s a good number of devices and set top boxes that DO support Matroska in glorious fashion.</p>
<h2><strong>3. Apple just used parts it already had<br />
</strong></h2>
<p>From a cost perspective, I can understand this choice&#8230; but it&#8217;s still a complete disappointment. From the looks of it, the new AppleTV is no more than an iPod Touch with an HDMI output adapter. It uses the same<a title="Wikipedia -- Apple A4 Processor" href="http://en.wikipedia.org/wiki/A4_Processor" target="_blank"> A4 Processor</a> that is now in almost all Apple devices and I&#8217;m fairly sure will share the same PCB as the iPod Touch or possibly even the new iPod Nano. What grinds my gears on this is that even the HTC EVO 4G supports 1080p output of video (using the <a title="Amazon.com -- HTC EVO HDMI Adapter" href="http://www.amazon.com/gp/product/B003OBZSHC?ie=UTF8&amp;tag=ericnusbsoft-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B003OBZSHC" target="_self">HDMI adapter</a>), so how on earth does Apple reconcile that it&#8217;s new AppleTV, a media-playback-centric box, has less media capability than a mobile device?</p>
<h2><strong>2. You can stream to it, right?!</strong></h2>
<p>I guess. One of the features touted at the conference was that you&#8217;d be able to play movies from your iPad and watch them on your TV. But does it have to be YOUR iPad (tied to your account), or can your buddy bring over HIS iPad and watch one of HIS movies on YOUR AppleTV? I&#8217;m guessing no. Apple isn&#8217;t huge on content sharing.</p>
<p>My guess is the only time this will come in handy is when your wife leaves for work, you can finish watching the porn on your TV.</p>
<h2><strong>1. So then what is it good for?</strong></h2>
<p>It&#8217;s good for Apple to make money. It pumps up the sales volume and market penetration of their A4 platform which would otherwise only be moving out of their warehouses via mobile devices. It also acts as a point of sale for additional sales through iTunes. Sure, it&#8217;s only 99 Cents per show, but the only networks that are signed on are available in<a title="Wikipedia -- Ditigal Television" href="http://en.wikipedia.org/wiki/Digital_television_transition_in_the_United_States" target="_blank"> HD Over-The-Air</a> (OTA) for free. So sure, you can say that AppleTV might save you money by using it versus having Cable, but as it stands right now, just watching the same shows OTA for free would be the cheapest solution.</p>
<p>I find it disappointing that Apple didn&#8217;t take this opportunity to strike into the HTPC market that they struck out on during the first release of AppleTV. Windows Media Center Edition is such a great platform for media playback and is being installed on smaller and smaller devices powered by Intel&#8217;s Atom platform.</p>
<p>Now, don&#8217;t get me wrong, I&#8217;m far from an Apple hater. I enjoy my iPhone4 and MacBook Pro as much as the next Apple <a title="Urbandictionary -- Fanboi" href="http://www.urbandictionary.com/define.php?term=fanboi" target="_blank">Fanboi</a>&#8230; I can just smell shit when I see it <img src='http://www.enusbaum.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h6><em>*Does not, in fact, play everything&#8230; but supports a heck of a lot more than AppleTV!</em></h6>
<div class="su-linkbox" id="post-393-linkbox"><div class="su-linkbox-label">Link to this post!</div><div class="su-linkbox-field"><input type="text" value="&lt;a href=&quot;http://www.enusbaum.com/blog/2010/09/6-reasons-the-new-appletv-is-a-floppy-turd/&quot;&gt;6 Reasons the new AppleTV is a Floppy Turd&lt;/a&gt;" onclick="javascript:this.select()" readonly="readonly" style="width: 100%;" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://www.enusbaum.com/blog/2010/09/6-reasons-the-new-appletv-is-a-floppy-turd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

