<?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>international geographic &#187; computers suck</title>
	<atom:link href="http://www.chetanislazy.com/blog/category/computers-suck/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chetanislazy.com/blog</link>
	<description>ooh, shiny!</description>
	<lastBuildDate>Thu, 19 May 2011 04:16:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Profiling Java programs on OS X</title>
		<link>http://www.chetanislazy.com/blog/2011/05/18/profiling-java-programs-on-os-x/</link>
		<comments>http://www.chetanislazy.com/blog/2011/05/18/profiling-java-programs-on-os-x/#comments</comments>
		<pubDate>Thu, 19 May 2011 04:15:01 +0000</pubDate>
		<dc:creator>chetan</dc:creator>
				<category><![CDATA[computers suck]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[shark]]></category>
		<category><![CDATA[tptp]]></category>

		<guid isPermaLink="false">http://www.chetanislazy.com/blog/?p=282</guid>
		<description><![CDATA[Sounds easy, doesn&#8217;t it? Well it actually is quite simple but the error messages along the way can really trip you up! My first attempt at profiling a bit of code was to use the full-boat Eclipse stack: Eclipse Test &#038; Performance Tools Platform Project! Well, what they don&#8217;t tell you anywhere on the project [...]]]></description>
			<content:encoded><![CDATA[<p>Sounds easy, doesn&#8217;t it? Well it actually is quite simple but the error messages along the way can really trip you up!</p>
<p>My first attempt at profiling a bit of code was to use the full-boat Eclipse stack: <a href="http://www.eclipse.org/tptp/">Eclipse Test &#038; Performance Tools Platform Project</a>! Well, what they don&#8217;t tell you anywhere on the project page is that it&#8217;s only supported on Windows and Linux. A Mac port was started sometime around 2004 and never completed. Yeah, it&#8217;s been that long!</p>
<p>And so this brings us to Apple&#8217;s <a href="http://developer.apple.com/tools/sharkoptimize.html">Shark</a>: an extremely barebones, no-frills profiler, but, what the heck, it&#8217;s free. For the basics on using this tool with your Java app, this <a href="http://ninjamonkeys.co.za/2008/02/21/java-performance-profiling-on-mac-for-free-using-shark/">great post</a> has all the details. There&#8217;s just one catch: 64-bit support. There is none. If you&#8217;re on a 64-bit stack and you try to run it, you&#8217;ll see something like the following:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ java -agentlib:Shark -cp foo.jar com.foo.Bar
Error occurred during initialization of VM
Could not find agent library: libShark.jnilib (searched /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries:/System/Library/Java/Extensions:/Library/Java/Extensions:.)</pre></div></div>

<p>Er, what? Now let&#8217;s see here&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ls -al /System/Library/Java/Extensions/libShark.jnilib 
-rwxr-xr-x 1 root wheel 50352 Oct 24  2010 /System/Library/Java/Extensions/libShark.jnilib</pre></div></div>

<p>Well, that&#8217;s odd. But it said it looked there, right?! Well, as it turns out, the Shark JNI library only supports 32-bit JVMs. So finally, we arrive at the following:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ java -d32 -agentlib:Shark -cp foo.jar com.foo.Bar
2011-05-18 23:05:20.756 java[84473:20f] Shark for Java enabled...</pre></div></div>

<p>Great sucess! And now, back to work, just a little less sane&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chetanislazy.com/blog/2011/05/18/profiling-java-programs-on-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiling Q4M on OS X</title>
		<link>http://www.chetanislazy.com/blog/2011/05/11/compiling-q4m-on-os-x/</link>
		<comments>http://www.chetanislazy.com/blog/2011/05/11/compiling-q4m-on-os-x/#comments</comments>
		<pubDate>Thu, 12 May 2011 03:04:34 +0000</pubDate>
		<dc:creator>chetan</dc:creator>
				<category><![CDATA[computers suck]]></category>

		<guid isPermaLink="false">http://www.chetanislazy.com/blog/?p=274</guid>
		<description><![CDATA[I recently compiled Q4M on my Mac and I&#8217;m documenting it here now because it proved to be somewhat painful so hopefully you&#8217;ll avoid a bit of grief by reading this. First off, you need MySQL Server. I&#8217;ve been using MacPorts for some time now, so this is installed via ports. Unfortunately, it seems to [...]]]></description>
			<content:encoded><![CDATA[<p>I recently compiled <a href="http://q4m.github.com/">Q4M</a> on my Mac and I&#8217;m documenting it here now because it proved to be somewhat painful so hopefully you&#8217;ll avoid a bit of grief by reading this. </p>
<p>First off, you need MySQL Server. I&#8217;ve been using MacPorts for some time now, so this is installed via ports. Unfortunately, it seems to be a pretty barebones config so I had to create a custom variant to add the necessary <code>--with-fast-mutexes</code> option. You can grab my modified Portfile <a href="https://github.com/chetan/ports">from github</a>. Just clone it into some directory and then add that path into <code>/opt/local/etc/macports/sources.conf</code> before the rsync line. Once you have that, go ahead and reinstall MySQL:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> mysql5 +fast_mutexes</pre></div></div>

<p>Q4M also requires access to the MySQL sources, so let&#8217;s get those unpacked:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>tmp
$ <span style="color: #c20cb9; font-weight: bold;">tar</span> <span style="color: #660033;">-xzf</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>macports<span style="color: #000000; font-weight: bold;">/</span>distfiles<span style="color: #000000; font-weight: bold;">/</span>mysql5<span style="color: #000000; font-weight: bold;">/</span>mysql-5.1.57.tar.gz</pre></div></div>

<p>Once that&#8217;s done, follow these steps to get Q4M compiled:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>include
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> mysql5<span style="color: #000000; font-weight: bold;">/</span>mysql 
&nbsp;
$ .<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--with-mysql</span>=<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>mysql-5.1.57 \
    <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
$ <span style="color: #007800;">CPATH</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>include<span style="color: #000000; font-weight: bold;">/</span>mysql \
   <span style="color: #007800;">LIBRARY_PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>mysql5<span style="color: #000000; font-weight: bold;">/</span>mysql \
   <span style="color: #c20cb9; font-weight: bold;">make</span>
&nbsp;
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>libqueue_engine.<span style="color: #000000; font-weight: bold;">*</span> \
   <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>mysql5<span style="color: #000000; font-weight: bold;">/</span>mysql<span style="color: #000000; font-weight: bold;">/</span>plugin<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Final step, tell mysql to install the engine</span>
$ mysql <span style="color: #660033;">-uroot</span> <span style="color: #000000; font-weight: bold;">&lt;</span> support-files<span style="color: #000000; font-weight: bold;">/</span>install.sql</pre></div></div>

<p>If after all that you&#8217;re still having problems, maybe you&#8217;ll have better luck with these <a href="http://blog.yappo.jp/yappo/archives/000656.html">Japanese instructions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chetanislazy.com/blog/2011/05/11/compiling-q4m-on-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupid Windows Firewall</title>
		<link>http://www.chetanislazy.com/blog/2011/01/30/stupid-windows-firewall/</link>
		<comments>http://www.chetanislazy.com/blog/2011/01/30/stupid-windows-firewall/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 21:28:54 +0000</pubDate>
		<dc:creator>chetan</dc:creator>
				<category><![CDATA[computers suck]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.chetanislazy.com/blog/?p=235</guid>
		<description><![CDATA[So it turns out that Windows Firewall, even in Windows 2008, still can&#8217;t accept a range of ports, either in the UI or via command line, most commonly when setting up PASV FTP transfers. The common workaround is to create one entry per port in your range like so: C:&#62; FOR /L %I IN (60000,1,60200) [...]]]></description>
			<content:encoded><![CDATA[<p>So it turns out that Windows Firewall, even in Windows 2008, still can&#8217;t accept a range of ports, either in the UI or via command line, most commonly when setting up PASV FTP transfers. The common workaround is to create one entry per port in your range like so:</p>
<p><code>C:&gt; FOR /L %I IN (60000,1,60200) DO netsh firewall add portopening TCP %I "Passive FTP"%I</code></p>
<p>While this does work, it&#8217;s slightly annoying that you have to create 200 individual entries in your config. My slightly better workaround is to just stick every port into the text entry field using this simple ruby helper:</p>
<p><code>puts (60000..60200).to_a.join(",")</code></p>
<p>You can run this either in IRB or directly on the command line using the following command:</p>
<p><code>$ ruby -e 'puts (60000..60200).to_a.join(",")'</code></p>
<p>This is great if your workstation has ruby on it, but sucks otherwise. So use this javascript version right here instead!</p>
<p>Start:<br />
<input type="text" id="start" value="60000" />
<p>End:<br />
<input type="text" id="end" value="60200" />
<input type="button" value="Submit" onclick="range();">
<p>Range:<br />
<textarea id="range"></textarea><br />
<script type="text/javascript">
function range() {
	var start = parseInt(jQuery("#start").val());
	var end = parseInt(jQuery("#end").val());
	var str = "";
	for (i = start; i <= end; i++) {
		if (str.length > 0) { str += "," }
		str += i;
	}
	jQuery("#range").val(str);
}
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chetanislazy.com/blog/2011/01/30/stupid-windows-firewall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running mlocate on Mac OS X</title>
		<link>http://www.chetanislazy.com/blog/2010/06/25/running-mlocate-on-mac-os-x/</link>
		<comments>http://www.chetanislazy.com/blog/2010/06/25/running-mlocate-on-mac-os-x/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 21:02:19 +0000</pubDate>
		<dc:creator>chetan</dc:creator>
				<category><![CDATA[computers suck]]></category>
		<category><![CDATA[findutils]]></category>
		<category><![CDATA[mlocate]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.chetanislazy.com/blog/?p=163</guid>
		<description><![CDATA[After suffering through yet another morning of &#8216;find&#8217; pegging my CPU and grinding my sad little laptop hard drive for a couple of hours, I finally decided to rectify the situation. Most Linux distributions these days ship mlocate by default, and so I decided to give it a go on OS X. Unfortunately, it doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>After suffering through yet another morning of &#8216;find&#8217; pegging my CPU and grinding my sad little laptop hard drive for a couple of hours, I finally decided to rectify the situation. Most Linux distributions these days ship <a href="http://carolina.mff.cuni.cz/~trmac/blog/mlocate/">mlocate</a> by default, and so I decided to give it a go on OS X. Unfortunately, it doesn&#8217;t quite support OS X out of the box yet. I&#8217;ll spare you all the miserable details (it was an epic struggle getting this compiled), but I finally managed to get it working. </p>
<p>Here&#8217;s how:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># first we get the source and patch it</span>
$ hg clone http:<span style="color: #000000; font-weight: bold;">//</span>hg.fedorahosted.org<span style="color: #000000; font-weight: bold;">/</span>hg<span style="color: #000000; font-weight: bold;">/</span>mlocate
$ <span style="color: #7a0874; font-weight: bold;">cd</span> mlocate
$ <span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #ff0000;">'https://fedorahosted.org/mlocate/attachment/ticket/15/mlocate-mountlist-hg.2.diff?format=raw'</span> <span style="color: #660033;">-O</span> mlocate-mountlist-hg.2.diff
$ hg import mlocate-mountlist-hg.2.diff
&nbsp;
<span style="color: #666666; font-style: italic;"># prep</span>
$ <span style="color: #7a0874; font-weight: bold;">cd</span> ..
$ <span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>git.savannah.gnu.org<span style="color: #000000; font-weight: bold;">/</span>gnulib.git
$ <span style="color: #7a0874; font-weight: bold;">cd</span> mlocate
$ ..<span style="color: #000000; font-weight: bold;">/</span>gnulib<span style="color: #000000; font-weight: bold;">/</span>gnulib-tool <span style="color: #660033;">--import</span>
$ <span style="color: #c20cb9; font-weight: bold;">mv</span> gnulib<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>stat-time.h~ gnulib<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>stat-time.h
$ <span style="color: #c20cb9; font-weight: bold;">cp</span> ..<span style="color: #000000; font-weight: bold;">/</span>gnulib<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>canonicalize.h gnulib<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>
$ autoreconf <span style="color: #660033;">--install</span> <span style="color: #660033;">--force</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># install</span>
$ .<span style="color: #000000; font-weight: bold;">/</span>configure
$ <span style="color: #c20cb9; font-weight: bold;">make</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Ok, now we have the binaries in place; we&#8217;re almost there! One last thing to do, and that&#8217;s create a new user account and group for mlocate. After running updatedb it will try to chown the locate db as the user &#8216;mlocate&#8217;, so we need to make sure this users exists. Unfortunately, there&#8217;s no adduser command in OS X and it&#8217;s a little bit of a pain, so I wrote this little <a href="http://gist.github.com/453339">script</a> to take care of it for you. Grab it <a href="http://gist.github.com/453339">here</a>.</p>
<p>Simply run it like so:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ adduser 
adduser<span style="color: #000000; font-weight: bold;">!</span>
&nbsp;
username: mlocate
home <span style="color: #c20cb9; font-weight: bold;">dir</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #007800;">default</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>empty<span style="color: #7a0874; font-weight: bold;">&#93;</span>: 
group <span style="color: #c20cb9; font-weight: bold;">id</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">default</span>=<span style="color: #000000;">700</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>:
user <span style="color: #c20cb9; font-weight: bold;">id</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">default</span>=<span style="color: #000000;">700</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>:
real name <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">default</span>=daemon<span style="color: #7a0874; font-weight: bold;">&#41;</span>: 
shell: <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">default</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">false</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>:</pre></div></div>

<p>All done! Now let&#8217;s try updating the db -</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">updatedb</span></pre></div></div>

<p>And that should be it. I still ran into a couple of problems with permissions so your best bet is to fix them every time you run updatedb (just stick it in cron):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">664</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>mlocate<span style="color: #000000; font-weight: bold;">/</span>mlocate.db</pre></div></div>

<p>Now wasn&#8217;t that easy? </p>
<p>PS. If you don&#8217;t have Mercurial (hg) or Git installed, get them here:<br />
Mercurial: <a href="http://mercurial.selenic.com/">http://mercurial.selenic.com/</a><br />
Git: <a href="http://code.google.com/p/git-osx-installer/">http://code.google.com/p/git-osx-installer/</a></p>
<hr/>
<strong>Updated (July 23, 2010)</strong>: You may need newer versions of automake and autoconf as well. I had problems with 1.5 and 2.63 respectively but upgrading to 1.11 and 2.65 (with fink) worked fine. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.chetanislazy.com/blog/2010/06/25/running-mlocate-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upgrading the Mac Pro: Adding a 2nd GPU</title>
		<link>http://www.chetanislazy.com/blog/2009/12/16/upgrading-the-mac-pro-adding-a-2nd-gpu/</link>
		<comments>http://www.chetanislazy.com/blog/2009/12/16/upgrading-the-mac-pro-adding-a-2nd-gpu/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 04:42:17 +0000</pubDate>
		<dc:creator>chetan</dc:creator>
				<category><![CDATA[computers suck]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[mac pro]]></category>

		<guid isPermaLink="false">http://www.chetanislazy.com/blog/?p=95</guid>
		<description><![CDATA[tl;dr- Yes, you can add a 2nd GPU; OS X will ignore it; Windows will use it. Make sure to disable the card in the 1st slot to use it for gaming. Apple makes great hardware, there&#8217;s no doubt about it. However, occasionally they make decisions that not only boggle the mind but are completely [...]]]></description>
			<content:encoded><![CDATA[<p><em>tl;dr- Yes, you <strong>can</strong> add a 2nd GPU; OS X will ignore it; Windows will use it. Make sure to disable the card in the 1st slot to use it for gaming.</em></p>
<p>Apple makes great hardware, there&#8217;s no doubt about it. However, occasionally they make decisions that not only boggle the mind but are completely infuriating. Like putting <a href="http://en.wikipedia.org/wiki/Mini-DVI">non-standard ports</a> on a laptop and charging twenty bucks for the proper adapter cable! </p>
<p>A similar problem I ran into recently is the issue of the graphics card in the Mac Pro: only specially branded &#8220;Mac-compatible&#8221; GPUs will work in OS X. What&#8217;s the problem with that you ask? Availability and pricing. </p>
<p><span id="more-95"></span></p>
<h3>Availability</h3>
<p>The current generation Mac Pro as of this writing offers a whopping <strong>two</strong> GPU options at the Apple store: the NVIDIA GeForce GT 120 512mb or the ATI Radeon HD 4870 512MB. I also managed to find and EVGA GeForce GTX 285 PCIe 1GB at a third-party retailer, bringing our total to three. Compare that with a whopping 380 PCIe x16 cards available right now on <a href="http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&#038;N=40000048%201069633099&#038;name=PCI%20Express%202.0%20x16&#038;ActiveSearchResult=True">Newegg</a>.</p>
<h3>Pricing</h3>
<p>This one should be pretty obvious if you&#8217;ve ever bought an Apple computer product: there is a steep markup on these specially branded cards. Where the Radeon HD 4870 costs about <a href="http://www.smalldog.com/product/73308">$349</a> a similar PC card costs about $150 and you get 1GB of memory to boot!</p>
<h3>Who cares?</h3>
<p>Ok, so upgrading the GPU is looking like it&#8217;s going to cost an arm and a leg for an OS X compatible part. Is it worth it? Truth is, it&#8217;s not. Gaming on the Mac is in a sad state of affairs with a severe shortage of available titles and when they <strong>do</strong> appear, it&#8217;s often long, long after the PC version (e.g., <a href="http://en.wikipedia.org/wiki/Call_of_Duty_4:_Modern_Warfare">CoD4: Modern Warfare</a> which suffered a delay of nearly 11 months). </p>
<p>So why all the fuss, then? Well, if you&#8217;re a Mac gamer, then you&#8217;re running Windows via Bootcamp to get your fix, like I am. </p>
<h3>Solution</h3>
<p>After much research, and some helpful replies to queries posted on the Apple community boards, I finally found my answer. A second &#8220;PC&#8221; GPU added to the Mac Pro will be safely ignored by OS X and properly recognized by Windows (see screenshots below). Just be sure to disable the original GPU in Windows once you&#8217;ve got the second card all setup or else you won&#8217;t be able to use it for gaming. </p>
<p>I still ran into one minor issue: the Mac Pro has a unique PCIe x16 power connector requiring, you guessed it, a special <a href="http://chetanislazy.com/images/blog/PCIe_cable.jpg" rel="lightbox[95]">Mac-only power cable</a>! Fortunately there are plenty of them <a href="http://shop.ebay.com/i.html?_nkw=pcie+power+cable+mac+pro">available on eBay</a> for under 20 bucks so you should still be able to pull off a rather &#8220;cheap&#8221; upgrade. </p>
<p><a href="http://chetanislazy.com/images/blog/MacOSX_2nd_GPU.png" rel="lightbox[95]"><img src="http://chetanislazy.com/images/blog/MacOSX_2nd_GPU.png" alt="Mac OS X with 2nd GPU" width="248" /></a> <a href="http://chetanislazy.com/images/blog/WinXP_2nd_GPU.png" rel="lightbox[95]"><img src="http://chetanislazy.com/images/blog/WinXP_2nd_GPU.png" alt="Windows XP with 2nd GPU" width="248" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chetanislazy.com/blog/2009/12/16/upgrading-the-mac-pro-adding-a-2nd-gpu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

