<?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>gtuhl: startup technology &#187; productivity</title>
	<atom:link href="http://blog.gtuhl.com/category/productivity/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gtuhl.com</link>
	<description>Development, IT, Gadgets, and Startups</description>
	<lastBuildDate>Fri, 14 Oct 2011 12:15:56 +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>Spam Control</title>
		<link>http://blog.gtuhl.com/2011/01/09/spam-control/</link>
		<comments>http://blog.gtuhl.com/2011/01/09/spam-control/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 03:03:33 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/?p=726</guid>
		<description><![CDATA[This is my approach to dealing with email lists and spam. I&#8217;ve been using this setup (or something like it, gmail wasn&#8217;t around initially) for about 10 years and it works really well. It&#8217;s easy to setup and costs about $10/year. This is a simpler setup that gets it done. You gain a bit more [...]]]></description>
			<content:encoded><![CDATA[<p>This is my approach to dealing with email lists and spam.  I&#8217;ve been using this setup (or something like it, gmail wasn&#8217;t around initially) for about 10 years and it works really well.  It&#8217;s easy to setup and costs about $10/year.</p>
<p>This is a simpler setup that gets it done.  You gain a bit more control by using a google apps account to handle this sort of thing separately but that involves several more steps and setting up MX records.  This post is meant as a how to for nontechnical people unfamiliar with DNS.</p>
<h3>Step 1: Gmail Account</h3>
<p>Sign up for gmail.  If you already have a gmail account this step is done.  I recommend gmail because their spam detection and filtering options are quite good.  Plus, gmail is free and feature-wise one of the best options out there.</p>
<p>The good spam detection is important as this account will get hit by a lot of brute force type spammers that just slam random names at new domain names.  Gmail will filter all of this out so you never notice it.</p>
<h3>Step 2: Domain Name</h3>
<p>Register a domain name.  This could be your name, or just some word you like (e.g. johnsmith.com).  This will be the domain name on all the emails you sign up for things with.  I recommend using <a href="http://namecheap.com" target="_blank">namecheap.com</a>.  They just changed their interface to make it more confusing in my opinion, but are still pretty good.  Here are the steps if this process is not familiar to you.</p>
<ul>
<li>At http://namecheap.com hit &#8220;My Account&#8221;.</li>
<li>Click &#8220;Signup for an Account Now&#8221; on the bottom right and go through the process.</li>
<li>Once logged in, select &#8220;Domains -> Register a Domain&#8221; from the top menu.</li>
<li>Try different domains until you find one you like, add it to your cart, and purchase it.</li>
<li>Select &#8220;My Account -> Manage Domains&#8221;, then click the domain you purchased from the list on the right.</li>
<li>Click &#8220;All Host Records&#8221;, select the &#8220;Free Email Forwarding&#8221; radio button, and hit &#8220;Save Changes&#8221;</li>
<li>Click &#8220;E-mail Forwarding Setup&#8221; on the left, and fill out the first line.  Enter a single asterisk (*) on the left field and your new gmail account on the right.  This will forward any email @yourdomain.com to the gmail account.  You could hand someone the email myfakerandomaccountijustmadeup@mydomain.com and it would work just fine without any extra steps, getting forwarded along to the gmail account.</li>
</ul>
<h3>Signing up for Lists</h3>
<p>Now whenever you sign up for a list use a unique email at the domain you registered and setup forwarding on.  I do this for everything and very rarely give out my main, personal email address.  Some good candidates for using these:</p>
<ul>
<li>All politicians and political campaigns.  This one is <strong>very</strong> important because political people have no respect or common sense when it comes to the internet and email.  I do firstname.lastname@mydomain with the name of the candidate or occasionally include the campaign year as well.</li>
<li>All utility companies (e.g. comcast@mydomain.com).  This can cause some interesting conversations with customer service as they will think your account email is fake but it usually isn&#8217;t too big a deal.</li>
<li>All web sites.  In addition to helping with spam tracking this has the added benefit of a tiny shred of extra security &#8211; you will have a different email address associated with each website (e.g. amazon@mydomain.com).</li>
</ul>
<h3>Advantages</h3>
<p>With this setup in place you have picked up a lot of advantages:</p>
<ul>
<li>You can see which lists have sold you out and passed your email along to other list buyers and renters.</li>
<li>Related to that, you know who the buyers are and can call them out.</li>
<li>If a particular email gets out of control (say from a politician selling it to everybody with a dollar) you can setup a filter in the gmail account that just deletes emails to that address immediately, effectively shutting it down.</li>
<li>If you ever change your main email account (say you switch from gmail to hotmail) you can simply update the single forwarding rule at http://namecheap.com and all of those addresses you have handed out over the years continue working without any trouble at all.</li>
<li>For contests, coupons, etc that only allow one entry per email you can just create whatever arbitrary count you want. (e.g. coupon1@mydomain.com, coupon2@mydomain.com, etc).</li>
<li>If you are a developer this can be pretty handy for testing things out end-to-end with a real email address.  I&#8217;ve created random lists of thousands of emails before to test sends and can just use a quick filter in gmail to clean things up.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2011/01/09/spam-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mirra Chair Review</title>
		<link>http://blog.gtuhl.com/2010/10/10/mirra-chair-review/</link>
		<comments>http://blog.gtuhl.com/2010/10/10/mirra-chair-review/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 01:17:14 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[furniture]]></category>
		<category><![CDATA[gear]]></category>
		<category><![CDATA[startups]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/?p=631</guid>
		<description><![CDATA[I recently threw down a nontrivial chunk of money to buy a chair, as much as would normally be spent on a proper gadget. This post is a quick review, justification to my self for spending that money, and an attempt at encouraging others to invest in an excellent chair. Why the Mirra? After much [...]]]></description>
			<content:encoded><![CDATA[<p>I recently threw down a nontrivial chunk of money to buy a chair, as much as would normally be spent on a proper gadget.  This post is a quick review, justification to my self for spending that money, and an attempt at encouraging others to invest in an excellent chair.</p>
<h2>Why the Mirra?</h2>
<table cellspacing="0" cellpadding="0">
<tr>
<td valign="top" style="padding-right: 10px">
<p>After much research and testing the chair I ended up with is the fully loaded <a href="http://www.hermanmiller.com/Products/Mirra-Chairs">Herman Miller Mirra</a>.  It retails for $600 &#8211; $900 depending on where you buy and what options you select.  The prices on new chairs are about the same everywhere so it makes sense to optimize on tax and shipping.
<p>You can find used chairs online and save several hundred dollars but keep in mind that the warranties are often bound to the original owner and not to the chair.</p>
<p>As for the Mirra, it&#8217;s a beautiful piece of furniture that is incredibly, utterly comfortable.  Read the Amazon reviews for the <a href="http://www.amazon.com/Mirra-Chair-Graphite-Herman-Miller/dp/B000WGSYVO/ref=sr_1_1?ie=UTF8&#038;qid=1286751386&#038;sr=8-1">Basic</a> and <a href="http://www.amazon.com/Herman-Miller-Mirra-Chair-Loaded/dp/B0002K11BK/ref=sr_1_3?ie=UTF8&#038;qid=1286751437&#038;sr=8-3">Loaded</a> versions if you want more perspective than this post can offer alone.</p>
<p>It feels like a solid product and weighs a ton.  My hope is to keep this thing for a full 10+ years before having to consider a replacement.</p>
</td>
<td valign="top">
<img src="/wp-content/mirra.jpg"/>
</td>
</tr>
</table>
<p></p>
<p>My list of features that make this chair:</p>
<ul>
<li>Mesh bottom and back keep things cool.</li>
<li>The hard back has just enough give to let you get positioned comfortably with little effort and your shoulders can push back fairly easily.</li>
<li>The forward tilt option is great as it lets your back stay fully supported even when leaning forward.</li>
<li>The lumbar support is exceptional and I found it better than any other chair I tried out.</li>
<li>The tilt tension adjustment works really well and is easy to adjust.  The idea with these chairs is you don&#8217;t lock the tilt with crude pins but instead adjust the tilt tension until it feels natural and moves how you want.</li>
</ul>
<h2>Other Contenders</h2>
<p>I looked at and sat in a bunch of the popular high end chairs from Herman Miller, Steelcase, and Humanscale before pulling the trigger on the Mirra.  The others that I liked most included the following:</p>
<p><strong><a href="http://store.steelcase.com/go/products/category/Leap+Chair/">Steelcase Leap</a></strong></p>
<p>This chair is also very comfortable and comes highly recommended online for programmers.  This was the final contender and I almost went with it instead of the Mirra.  I didn&#8217;t like the lumbar support quite as much.</p>
<p><strong><a href="http://www.hermanmiller.com/Products/Aeron-Chairs">Herman Miller Aeron</a></strong></p>
<p>These are very comfortable and adjustable chairs that I sat in for 5+ years at my old office.  I personally found the Mirra more comfortable and more supportive of my back but your mileage may vary.  If you are looking at the Aeron be mindful that it comes in 3 frame sizes and picking the wrong one can noticeably degrade comfort.</p>
<p><strong><a href="http://www.hermanmiller.com/Products/Embody-Chairs">Herman Miller Embody</a></strong></p>
<p>The Embody is really amazing.  I actually found this chair to be more comfortable than any of the above including the Mirra but the 2x multiplier on the price was too much for me to justify even with the tainted mindset apparent in this post.  I don&#8217;t know how to explain how comfortable it was but the thin back and being able to flex your shoulders around the chair had a big impact.</p>
<p><strong>Where to Try Them Out</strong></p>
<p>If you are in the Atlanta area and want to try out a bunch of these chairs in one shot swing by the <a href="http://www.samflaxsouth.com/">Sam Flax</a> store on the west side.  They have dozens of chairs, awesome staff, and prices competitive with what you would find online.  Before spending the money it is definitely worth sitting in several and playing with the adjustments.</p>
<p>Another option is <a href="http://c-w-c.com/">C-W-C</a> near 285/85.  They carry everything Herman Miller makes though are more optimized for selling larger batches.  If buying for an office give them a call as they are one of a few certified Herman Miller dealers and can entertain significant haggling on price.</p>
<h2>Worth It?</h2>
<p>Yes.</p>
<p>Spending this sort of money on a chair seemed ridiculous at first but as I thought about it over several months I now believe it makes complete sense for the following reasons:</p>
<ul>
<li>My back sucks, especially considering my age.  If I don&#8217;t keep it happy I feel like an old man.  I chalk this up to football growing up but am not fully certain of why.</li>
<li>The chairs at my current office are really terrible.  My bad back doesn&#8217;t help.</li>
<li>I sit in my chair at the office for 10-12 hours on an average day.  When it is crunch time the hours stack higher.</li>
<li>That is <strong>more</strong> time, by a comfortable margin, than I spend sleeping each 24 hour cycle.  How much did you spend on your mattress?</li>
<li>If you are a computer/software person you probably spend a ton of money on gear &#8211; laptops, bags, phones, monitors, etc.  Your chair should be in that list of things you are willing to pay more for given that it actually has an impact on your health.</li>
<li>These high end chairs allow you to sit literally for days (I pulled some wicked long hours in my old Aeron) without noticing any discomfort.  You simply don&#8217;t think about your chair and can focus on your work.</li>
<li>High end chairs come with high end warranties.  Parts and labor are covered on the Mirra for 10 years and the feedback online of people that had to contact warranty are exceedingly positive.</li>
<li>As a final personal reason I was diagnosed with a <strong>very</strong> mild case of <a href="http://en.wikipedia.org/wiki/Trigeminal_neuralgia">Trigeminal Neuralgia</a> and when I sit uncomfortable for long periods of time and start leaning forward the right side of my face begins to flare up.  I really have a mild (and not painful) case and it isn&#8217;t a big deal but it is a factor for me.</li>
</ul>
<p>One caveat on having a chair this comfortable is that you must remember to still stand up regularly and stretch things out a bit.  My solution to this is to drink enormous amounts of water and coffee all day so I have to walk down the hall to the restroom every 45-60 minutes.  While fairly annoying it does work.</p>
<h2>Final Thoughts</h2>
<p>These high end chairs are worth it.  Sitting in one for just a moment feels great but once you have them tuned for your build and preferences they are really fantastic.  This past week I have found myself looking forward to reaching the office so I can sit down in this thing as weird as that sounds.</p>
<p>If you sit all day every day and can afford the cost I would highly recommend doing some research and picking the chair that fits you best.  Include the Mirra in the list of candidates as it stacks up pretty well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2010/10/10/mirra-chair-review/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building and Testing C Code with Hudson</title>
		<link>http://blog.gtuhl.com/2010/05/09/building-and-testing-c-code-with-hudson/</link>
		<comments>http://blog.gtuhl.com/2010/05/09/building-and-testing-c-code-with-hudson/#comments</comments>
		<pubDate>Mon, 10 May 2010 02:13:51 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/?p=574</guid>
		<description><![CDATA[We are wrapping up a fun Hudson setup at work and I wanted to share our experience at a high level. Hudson is an &#8220;Extensible continuous integration server&#8221; that is used by a huge variety of companies for projects of all types. Hudson is definitely geared for Java projects out of the box but is [...]]]></description>
			<content:encoded><![CDATA[<p>We are wrapping up a fun <a href="http://hudson-ci.org/">Hudson</a> setup at work and I wanted to share our experience at a high level.  Hudson is an &#8220;Extensible continuous integration server&#8221; that is used by a huge variety of companies for projects of all types.  Hudson is definitely geared for Java projects out of the box but is very flexible and can be a huge help even on very non-Java code.  I have configured a few different environments like this and like Hudson the most for a few reasons:</p>
<ul>
<li>Overall it is very polished and bug free.  I suspect it being built by Sun for use on huge projects helps it here.</li>
<li>The user base is sufficiently large so it is easy to find help and there are literally hundreds of plugins covering all sorts of interactions with different languages, version control systems, ticketing systems, etc.  It is also possible to write your own plugins.</li>
<li>It has virtually no dependencies outside of Java.  Even for persistence it needs nothing as it uses intuitive flat file structure for storing everything.  This also makes it very easy to migrate to a new server.</li>
<li>The configuration of slave nodes and jobs are as straight forward as it gets.</li>
<li>It lets you have as much control as you want, dropping to shell scripts is no problem at all.</li>
</ul>
<p>In general continuous builds can make a huge difference for a development team.  Everyone can move more quickly and they are completely worth the time and effort to setup right.</p>
<h2>Our Project</h2>
<p>We are working with a large C project that must be built and tested on many platforms.  Building alone must be done on Windows 32, Windows 64, Linux 32, Linux 64, and OSX 32.  Testing must be done on at least one of each architecture with additional rounds to cover different OS and GPU combinations.  This variety of platforms takes a lot of time to test and it simply does not make sense to try and stay on top of the combinations with raw manpower.</p>
<p>The unique part of our testing is that it must be done on a machine with an Nvidia GPU.  You will see below that we are using <a href="http://www.citrix.com/English/ps2/products/feature.asp?contentID=1686939">Citrix XenServer</a> Virtual Machines for building but could not do the same for testing since VMs do not have native access to the GPU (with one exception that I know of).  More notes about that later.</p>
<p>We build with standard Make and have to use a variety of compilers (gcc, g++, nvcc) to get everything generated.</p>
<h2>The Build Machine Hardware</h2>
<p>My goal with the build machine was to keep it cheap (under $1500) and to have at least 8 cores for doing builds.  Our project can take awhile to build due to its size and number of dependencies and the best way to speed it up is raw CPU with usage of the &#8220;-j&#8221; argument in Make.</p>
<p>That said, these are the parts I went with.  I didn&#8217;t shop around and used Newegg for everything for the tracking and RMA convenience.  The only exception was a dual molex to 8 pin power adapter that I picked up at the nearby Microcenter for about $15.</p>
<table>
<tr>
<th>Part</th>
<th>Price</th>
</tr>
<tr>
<td>NORCO RPC-450 Black 4U Rackmount Case</td>
<td>$69.99</td>
</tr>
<tr>
<td>TYAN S7002G2NR-LE Dual LGA 1366</td>
<td>$254.99</td>
</tr>
<tr>
<td>2 x Xeon E5506</td>
<td>$473.98</td>
</tr>
<tr>
<td>Diablotek PHD 750W</td>
<td>$79.99</td>
</tr>
<tr>
<td>WINTEC 6GB (3 x 2GB) DDR3 1333</td>
<td>$229.99</td>
</tr>
<tr>
<td>6 x Seagate Barracuda 7200.12 ST3160318AS 160GB 7200</td>
<td>$227.94</td>
</tr>
<tr>
<td>LITE-ON Black 18x DVD-ROM</td>
<td>$19.99</td>
</tr>
<tr>
<td>Shipping for all the above.</td>
<td>$51.86</td>
</tr>
</table>
<p>Some notes about these parts:</p>
<ul>
<li>If I had upgraded anything it would have been bumping the Xeons up to something with hyperthreading, but that would have broken my spending limit.</li>
<li>Hard drives setup as 1 for XenServer host, a 4 disk raid 10 (using mdadm on the XenServer host), and a spare drive for the raid 10.  The board only has 6 SATA ports so the 6th went to the external DVD-ROM.</li>
<li>Tyan sells some awesome 2 socket boards if you can spend a little more money including ones with LSI raid controllers, more SATA ports, and up to 4 x16 PCIe 2.0 slots for running loads of GPUs.</li>
<li>When buying bigger, multi-socket boards like this make sure your power supply has all the connectors needed or that you can buy adapters to compensate.  The board above needs a 24pin and 2 x 8pin plugs (1 per CPU) from the power supply.</li>
<li>The first TYAN board gave a code FF on power up and I had to RMA it.  The second board worked without any trouble.  When buying parts like this plan on having to RMA something.  If you need a machine fast it is probably best to stick with a vendor like Dell.</li>
</ul>
<h2>Virtual Machines</h2>
<p>On the hardware mentioned above we are running 4 virtual machines using XenServer.  I settled on XenServer because it is free and full featured.  My first attempt was VMWare Server running on Fedora but it is full of bugs and limitations (only saw one of the Xeons, and only allows 2 cores per VM).  Their bare metal hypervisor (called ESXi) is supposedly better but it has strict hardware requirements and I wasn&#8217;t feeling very confident about VMWare after trying the VMWare Server product.</p>
<p>XenServer is a bare metal hypervisor, a very minimal Linux distribution.  It does have a very complete command line interface for interacting with VMs and it does at least ship with mdadm so you can setup software raid arrays to run VMs on.  The more feature rich, GUI-based administration app for working with the VMs only runs on Windows unfortunately and it connects to a running XenServer hypervisor.  Most things can be done through the Windows application and anything more sophisticated can likely be done through the command line with shell scripts.  <a href="http://www.howtoforge.com/virtualization-with-xenserver-5.5.0">This Guide</a> has straight forward instructions for getting things running.</p>
<p>Once I settled on XenServer this part was very smooth.  I made sure to fire up sshd and VNC Server on all virtual machines so I rarely have to use that Windows-only management application.</p>
<p>The 4 Virtual Machines are handling our builds for Windows and Linux, 32bit and 64bit for each.  Each VM has access to all 8 Xeon cores and I staggered the polling frequency for each build in Hudson to avoid fights over CPU resources.</p>
<p>We are not able to use these for testing as we need native access to the GPU.  The <a href="http://www.parallels.com/products/extreme/">Parallels Extreme Workstation</a> is another hypervisor that does support native access to certain cards but it is expensive and has very specific hardware requirements.  I assumed my pieced together Newegg server would not be a good fit or at the very least would ensure I couldn&#8217;t get decent support from Parallels.</p>
<h2>Hudson Setup</h2>
<p>Hudson is definitely optimized for Java projects but we are having great success using it on our C project.  Without going into too much detail, here are the general pieces of our setup.  If anybody else is setting up something similar I am happy to answer any questions.</p>
<ul>
<li>Using the shell script option for all build steps.</li>
<li>Using SSH for ALL slave nodes including Windows.  For Windows we are using cygwin to install and run sshd.  This has many advantages including being able to pretend you aren&#8217;t having to use Windows.  More practically this lets you write your Windows scripts in good old bash using the standard Linux tools instead of having to suffer great pain with .bat files.  The great part is this means you can often use common scripts regardless of slave OS.</li>
<li>Using a separate job for each build and test environment.</li>
<li>Build jobs are architecture specific (e.g. Linux 32bit)</li>
<li>Test jobs are OS and device specific (e.g. Fedora 10 32bit running card X) and dependent on successful build jobs of compatible architecture.  As an example, when the Linux 32bit build completes separate test jobs start up for Fedora 10 32bit card X, CentOS 32bit card Y, etc.</li>
<li>We have a custom test harness that consists of shell scripts which compare GPU results against CPU results in backgrounded processes.  When our test jobs complete a separate script parses this output and generates JUnit-compatible XML reports which Hudson reads.  Hudson thinks they are JUnit and provides great trends, graphs, and data about these tests.  We background the testing processes so that if they seg fault or time out we can kill them in the main script that is running all of the tests without having to stop testing altogether for that build.</li>
<li>We have all of our various scripts stored on the master and the first step of the slaves is to scp over the latest versions of these scripts.  This makes things much easier to maintain and ensures you only need to add/update scripts in one place.</li>
<li>Using the <a href="http://wiki.hudson-ci.org/display/HUDSON/Log+Parser+Plugin">Log Parser Plugin</a> to fail builds.  This is a great plugin that makes it trivially easy to indicate what indicates a failure in your build output and more generally is great for grouping your output into different categories.</li>
<li>We tarball the compiled code and include that as an artifact on the last 10 builds of each architecture so that a clean build is always only a click away.</li>
<li>Using <a href="http://viewvc.org/">ViewVC</a> and the corresponding plugin to link all change logs in Hudson to the specific diffs.  Hudson has plugins for more sophisticated repo browsers like Fisheye but ViewVC is free and functional enough.</li>
<li>Our Mac builds and testing are handled by the developer laptops in the office.  Our laptops are all listed as slaves and Hudson will snag one for usage when it sees one on the LAN.  Eventually we will probably grab a Mac Mini to handle this.</li>
</ul>
<h2>Conclusion</h2>
<p>Hudson is a great tool.  The above setup was a fair amount of work to setup but will be a big help to our development team.  We have the comfort of knowing builds and testing are happening <strong>constantly</strong> and have easy access to change logs, build histories, testing trends, stable build tarballs, build timings per OS, and all sorts of useful information and validation.  We are tweaking it and making it better every time someone using it thinks of a change or some new information that would be helpful.  I am very happy with the end result and feel that Hudson is flexible enough that we won&#8217;t ever outgrow what it can help with.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2010/05/09/building-and-testing-c-code-with-hudson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OCZ Vertex SSD in a 17&#8243; Santa Rosa MacBook Pro</title>
		<link>http://blog.gtuhl.com/2009/03/26/ocz-vertex-ssd-in-a-17-santa-rosa-macbook-pro/</link>
		<comments>http://blog.gtuhl.com/2009/03/26/ocz-vertex-ssd-in-a-17-santa-rosa-macbook-pro/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 01:48:13 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[ocz]]></category>
		<category><![CDATA[ssd]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/?p=218</guid>
		<description><![CDATA[My Reasons for Buying an SSD I do all of my work on a MacBook Pro. It is a maxed out 17&#8243; of the Santa Rosa variety &#8211; this one with the 2.4 Ghz CPU, 4GB RAM, and the higher res display. It was top of the line when purchased and still has pretty solid [...]]]></description>
			<content:encoded><![CDATA[<h2>My Reasons for Buying an SSD</h2>
<p>I do all of my work on a MacBook Pro.  It is a maxed out 17&#8243; of the Santa Rosa variety &#8211; <a href="http://support.apple.com/kb/SP17">this one</a> with the 2.4 Ghz CPU, 4GB RAM, and the higher res display.  It was top of the line when purchased and still has pretty solid specs.</p>
<p>Lately I have been noticing it beach balling a lot, along with very frequent full-bore fan speed and noise.  Additionally my IO read/write indicators (via <a href="http://www.ragingmenace.com/software/menumeters/">menumeters</a>) are constantly lit up.  When I first got this laptop I do not remember any of that &#8211; it ran very silent and I barely ever noticed lag or stuttering.</p>
<p>I had originally thought this machine had the 7200rpm 160GB drive of the mid &#8217;07 revision but despite threads like <a href="http://forums.macrumors.com/showthread.php?t=340881">this one</a> confusing things, I am pretty sure the disk was actually the 5400rpm.  The xbench comparison pages revealed that the disk tests were coming back with an aggregate score of high 30&#8242;s to low 40&#8242;s for people running Santa Rosas with the 5400 rpm drive and as you can see in the below benchmarks mine wasn&#8217;t even on par with those scores.  As far as I could tell from Xbench I was running a 4200 rpm drive or a 5400 rpm drive that was dying with a score in the 20&#8242;s</p>
<p>My frustration with the Macbook&#8217;s performance happened to correspond in timing with a lot of discussion at the office about our production database IO performance, SAS drives, better controllers, etc.  This turned into conversation about Solid State Disks (SSDs), the Intel X25s, and even the incredible <a href ="http://www.fusionio.com/">Fusion-IO drives</a>.  For anyone interested the X25-E and Fusion-IO are compared <a href="http://www.tomshardware.com/picturestory/493-x25-e-fusion-io-iodrive.html">here</a>.</p>
<p>So I made up my mind to buy an SSD for this Macbook Pro.  A tax return was coming, it was close to my birthday, so why not right?  I had my mind set on the Intel X25-M 80GB and then Zach pointed me at this <a href="http://anandtech.com/storage/showdoc.aspx?i=3531">incredibly detailed review/overview of SSDs by AnandTech.com</a>.  That article is excellent and you should read it if in the market for an SSD.  The big takeaways are:</p>
<ul>
<li>Random IO plays a huge part in the performance of a computer under a typical work day load.  Sequential IO (the speed advertised on the box) is far less important.</li>
<li>Many SSDs, notably all using a JMicron controller, have <strong>horrible</strong> random write performance &#8211; so bad that they are actually a step down from a standard disk.</li>
<li>Intel&#8217;s SSDs do not suffer from this issue and they perform the best of all SSDs available.</li>
<li>OCZ has made a few of the JMicron-based SSDs that have the terrible random write performance but their newest SSDs, including the OCZ Vertex, do not suffer from this issue and they perform well.</li>
<li>SSDs get slower once you have written to all available space at least once, but are still far faster than a standard disk once this happens.</li>
</ul>
<p>The main gist is that an SSD is a very noticeable, solid upgrade.  The OCZ Vertex does not perform quite as well as the Intel X25s (wins some, but loses more benchmarks in that AnandTech article) but you pay significantly less per GB.  The Intel X25-M 80GB was about the same price as the OCZ Vertex 120GB (low $300s) when I made my purchase.  The baseline jump from regular HD to SSD is huge so the incremental difference on top of that between the Vertex and the X25-M just didn&#8217;t seem like a big deal.</p>
<h2>Preparation</h2>
<p>To prepare for the OCZ Vertex I shrunk down my disk space usage.  I was using 100GB and my initial direction towards the Intel disk meant I had to lose a significant portion of that.  The OCZ eliminated this need but from their forums and the above AnandTech article leaving space empty is a good idea as it delays the point at which you have written over the entire drive.</p>
<p>I used a combination of <a href="http://monolingual.sourceforge.net/">Monolingual</a> and <a href="http://www.derlien.com/">Disk inventory X</a> to achieve this.  The first can delete languages and architectures you don&#8217;t care about &#8211; for me it freed up 4.2GB of space.  The second provides a very useful visual display of your hard drive and makes it easy to identify and eliminate the big space killers.  I found an unused parallels image, old irrelevant zip archives, unused applications and their data/caches (an old version of IntelliJ IDEA had a 3GB cache on disk, and a long ago uninstalled copy of MS Office left a couple GB as well).  Unless you care about the speech capabilities of your laptop, you can also kill the Alex voice at <code>/System/Library/Speech/Voices/Alex.SpeechVoice</code> to net another ~700MB.  </p>
<p>In total I got my usage down to 63GB and that includes 26GB of music I could offload to something else if I felt like it.  Can&#8217;t recommend those two programs enough.</p>
<h2>Installation</h2>
<p>Despite being very comfortable swapping out computer hardware I was initially hesitant to do the install myself.  This is because these particular MBPs are <a href="http://www.youtube.com/watch?v=bMwqMEhwQKU">nontrivial</a> to swap the hard drive of.  But, after being told by <a href="http://amromousa.com/">Amro</a> that it wasn&#8217;t too bad and also really wanting to get the swap done I drove to Home Depot, bought a Torx screwdriver set (T6 is what you need along with a tiny phillips) and did end up putting the drive in myself.  It took me ~40 minutes but I was working slowly and carefully to ensure I didn&#8217;t jack anything up.  I printed up the PDF of <a href="http://www.ifixit.com/Guide/Repair/MacBook-Pro-17-Inch-Core-Duo-Hard-Drive-Replacement/319/1">these instructions</a> and they were complete and clear. My notes from this process:</p>
<ul>
<li>In Step 10, the ribbon cable was taped down pretty good.  I&#8217;d recommend loosening the tape and disconnecting the cable with tape still attached if you can.</li>
<li>In Step 15 the SATA connector had a couple pieces of tape around it that wrapped up underneath the drive.</li>
<li>I used a cheap 2.5&#8243; disk enclosure and <a href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html">SuperDuper</a> to copy my existing drive to the OCZ after formatting it with Disk Utility.  This worked flawlessly.  After the copy I just swapped the drives, turned on my machine, and I was at 100% again &#8211; everything exactly as it was.</li>
<li>Go slow and keep track of the screws you remove by clearly labeling them on a sheet of paper.  You have to remove (and replace) about 30 screws.</li>
<li>From reading around, and ignore this, the process doesn&#8217;t void your warranty (again, what I have read, not what I am saying).  But, if you take your laptop to the Apple store and they see a non-spec hard drive or any damage they can refuse to do work on it so be prepared to put your old drive back if you need to get it serviced and be very careful so there isn&#8217;t any way for them to tell you were in the case.  If you are not comfortable doing it yourself, I&#8217;d suggest <a href="http://www.atlantaproaudio.net/">Atlanta Pro Audio</a> &#8211; reasonable price and they can do it while you wait.  They were recommended and used by multiple coworkers.</li>
</ul>
<p>Here&#8217;s a shot of the laptop guts with it all opened up, also the point where it is too late to turn back.<br />
<img src="http://blog.gtuhl.com/wp-content/vertex/vertex_guts_small.jpg"/></p>
<p>Now on to the actual numbers and whole reason for this post.</p>
<h2>Performance Notes</h2>
<ul>
<li>The data on my hard drive was unchanged between non-SSD and SSD tests &#8211; exact same content.</li>
<li>In the &#8220;launch apps&#8221; tests below I am loading my minimal stack of daily use applications &#8211; IntelliJ IDEA, Textmate, Terminal, TaskPaper, Mail, iCal, PostgreSQL 8.3 server, Firefox, Tweetdeck, Adium, iTunes, and two Fluid apps.</li>
<li>I launched the applications via Spotlight in the same order as quickly as lag/Spotlight allowed.  Then checked on the biggest apps until fully working.  IntelliJ IDEA dominates this time as it by far takes the longest to fully load (it loads up with our huge Java project setup by default).  The timing is highly subjective, but this is the period of time that passed between login and when I felt all applications were responsive and usable.</li>
<li>Xbench is available at <a href="http://xbench.com">Xbench.com</a>.  You can view posted results from other people there too.  My Xbench runs were done after a clean reboot and with nothing else running.</li>
<li>I had planned to do dd and bonnie++ tests as well &#8211; actually did run them on the old drive but after reading the OCZ forums and considering that I had to write a total of 16 GB to disk to run those tests to get real results I decided it wasn&#8217;t worth chewing on the SSD just for a benchmark.  Once the SSD has proven stable for a longer period of time i&#8217;ll run those tests to compare.  For now I just have Xbench.  I don&#8217;t know if it is accurate at all (compared to dd/bonnie++) but it is commonly used and provides a way to do comparison.  I got different results with Xbench on every single run, used middle of the pack runs for numbers below..</li>
</ul>
<h2>Performance Before SSD Install</h2>
<p><strong>Bootup results</strong><br />
Time to boot up to login screen: 83 seconds<br />
Time to login and launch all apps: 526 seconds</p>
<p><strong>Xbench results</strong><br />
Total system score (all tests): 99.01<br />
<a href="http://db.xbench.com/merge.xhtml?doc1=355131&#038;unsetCookie=true">Link to all pre-SSD results</a></p>
<p>The disk-specific numbers:<br />
<img src="http://blog.gtuhl.com/wp-content/vertex/benchmark_pre_ssd.png"/></p>
<h2>Performance After SSD Install</h2>
<p><strong>Bootup results</strong><br />
Time to boot up to login screen: 24 seconds<br />
Time to login and launch all apps: 64 seconds (<strong>WOW &#8211; compare to above</strong>)</p>
<p><strong>Xbench results</strong><br />
Total system score (all tests): 185.23<br />
<a href="http://db.xbench.com/merge.xhtml?doc2=356207">Link to all results</a></p>
<p>The disk-specific numbers:<br />
<img src="http://blog.gtuhl.com/wp-content/vertex/benchmark_post_ssd.png"/></p>
<p>In addition to an utterly amazing performance increase my laptop is completely silent now.  As I type this post I can hear absolutely nothing.  Without menumeters telling me when reads/writes are happening I would never know the disk was doing work.</p>
<h2>Conclusion</h2>
<p>The OCZ Vertex makes this laptop an entirely new machine.  It makes a <strong>HUGE</strong> difference.  Best money I have ever spent on a computer upgrade.  These things, in my opinion, are the biggest advance in computing hardware to come along in quite awhile.  And over the next few years they will get faster, bigger, and cheaper.  Prices have literally dropped in half in just the last few months so if you aren&#8217;t in dire need of a new disk it is probably best to wait longer.</p>
<p>The biggest, most noticeable part of running with the SSD installed is boot time and application launch/quit time.  Applications load <strong>instantly</strong>.  I used to open up the Applications folder in Finder when I rebooted because Spotlight would lag and that way I could start all my apps from one place (I don&#8217;t keep anything in the dock &#8211; only shows running programs).  With the SSD, Spotlight is functional immediately and when I tried to start everything from the Finder I could not because the Apps fired up so dang fast I could not keep my cursor in the Finder window.</p>
<p>I have only been running with the SSD in for one day so that is the context this post is written in.  There are scary posts in the OCZ forums of people (including several OSX users) having really rough issues with this SSD in &#8211; freezes, data corruption, etc.  Notably it appears people have increased difficulty with sleeping their machines, using Bootcamp, or running Windows VMs.  I don&#8217;t use Bootcamp but can say I have had zero issues with sleeping/waking or running Windows VMs in Parallels (the VMs load wickedly fast now).  And to their credit the OCZ guys are tenacious in response, appear to be completely willing to assist and replace, and definitely seem to be standing by their drives.  I suspect it is a minority of users having issues but just take it as a warning.  Reading those forums for awhile made me really nervous about my purchase (and was a contributing factor to swapping the drive myself &#8211; so I can get it out if need be).  I do thorough backups &#8211; hopefully I won&#8217;t need them.  After using the laptop for a full day with my normal, heavy load I feel a lot better about it being stable.</p>
<p>Also, the OCZ forums include a lot of people tuning their partitions, flashing various firmware versions, and tweaking settings heavily to get more performance.  I intentionally did none of that.  I just copied my stuff to the drive and swapped it in so take this as a naive but straight forward and realistic install.  My OCZ Vertex is running firmware 1199.  There is a newer version out but as far as I can tell you need a PC to update it.  I&#8217;ll only worry about that if I have issues.</p>
<p>So overall &#8211; very happy.  My laptop is a lot faster.  Biggest upgrade (by feel) I can ever remember doing to a computer.  Today was the first day in a long time where I had virtually no hesitation or beach balling from the MBP.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2009/03/26/ocz-vertex-ssd-in-a-17-santa-rosa-macbook-pro/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Quicksilver for OSX is pretty cool</title>
		<link>http://blog.gtuhl.com/2008/06/16/quicksilver-for-osx-is-pretty-cool/</link>
		<comments>http://blog.gtuhl.com/2008/06/16/quicksilver-for-osx-is-pretty-cool/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 00:20:46 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[quicksilver]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/?p=57</guid>
		<description><![CDATA[I first started using OSX right as Leopard was coming out so I&#8217;ve only known Spotlight as a great utility. It was very fast and did a great job of launching documents and applications. With a little more digging (like using command-enter on a selection to open its location in Finder) it became even more [...]]]></description>
			<content:encoded><![CDATA[<p>I first started using OSX right as Leopard was coming out so I&#8217;ve only known Spotlight as a great utility.  It was very fast and did a great job of launching documents and applications.  With a little more digging (like using command-enter on a selection to open its location in Finder) it became even more useful.</p>
<p>Unfortunately over the last several months Spotlight has blown away its index for absolutely no reason when I had to reboot my computer.  Twice it was a reboot related to an update and once it was just a plain vanilla restart.  In either case, there is absolutely no excuse for the index needing to be blown away.  I depended on Spotlight pretty heavily and the 2 hours or so that it took to rebuild the index was excruciating.  After the third time this happened I gave up on Spotlight and installed this <a href="http://docs.blacktree.com/quicksilver/overview">Quicksilver</a> thing people talk about.  I&#8217;ve heard that the Leopard Spotlight largely lessens Quicksilver&#8217;s advantages but I have still found it to be pretty powerful and it hasn&#8217;t blown away its index yet.  I&#8217;ve additionally started leaning heavily on some of its many capabilities that Spotlight does not possess.</p>
<h3>Why Care About Quicksilver?</h3>
<ul>
<li>You would like a Spotlightish application that does more.</li>
<li>You hate having to use the mouse if you can help it.</li>
<li>Spotlight appears to be forgetting to persist its index to disk or losing its index for some other weird reason.</li>
</ul>
<h3>Installation</h3>
<p>First download the latest version.  At the time of this post it is available <a href="http://www.macupdate.com/info.php/id/14831">here</a>.  Then I recommend following the quick tutorial <a href="http://vjarmy.com/archives/2004/03/quicksilver_a_b.php">here</a>.  There are some minor differences in the tutorial from the linked version of Quicksilver but it is largely still relevant.  During the installation I had to select plugins one at a time else the installer froze. I also had to refresh the plugin screen several times for the bulk of the many plugins available to show up.</p>
<p>Next you will want to neuter Spotlight so it isn&#8217;t churning on your machine in addition to Quicksilver.  Go into System Preferences -> Spotlight, then uncheck everything under Search Results and also uncheck both shortcuts.</p>
<p>I recommend setting Quicksilver&#8217;s shortcut to command-space now that Spotlight is effectively disabled and doesn&#8217;t need that combo.</p>
<p>In the Quicksilver settings under Catalog I couldn&#8217;t figure out how to increase the depth of the User catalogs that were already setup and Quicksilver was only indexing the first directory of my Documents folder.  To get around this I unchecked the Documents folder that was already setup under User and added a new one to Custom with infinite depth.  I did the same for my home directory Applications folder and was all set after that.</p>
<p>The way Quicksilver works is you launch it and start typing something.  Pressing down or right will trigger a context menu of possible matches or files that you can navigate through.  Once you are happy with the thing you have selected you can either hit enter to execute the default action listed or press tab and down to navigate through a list of actions.  When searching through the list of items or actions you can type to jump to another option that you know is in the list.  In most cases Quicksilver just seems to do the right thing so often the action doesn&#8217;t need to be selected.  If you get lost in your selections just press escape and start typing again.</p>
<h3>Usage</h3>
<p>Though I have no concrete numbers to back it up, Quicksilver is every bit as fast during usage and seems to build and maintain its index more quickly as well.  It also can do a whole ton more than application and document launching.  I&#8217;ve barely scratched the surface of what it can do as my usage is still solely within the available plugins and I am finding it more and more irreplaceable as I go.</p>
<p>I&#8217;ve only been using it for about a week and find all of the following extremely useful (most of this was recommended by the tutorial linked above): </p>
<ul>
<li>The standard launch behavior.  Command-space and start typing the application or document, press enter to launch/open.</li>
<li>The clipboard plugin.  Command-space, command-L, press 0 &#8211; 9 to paste any of the last 10 things I have copied into my current cursor position.  My preferences for this plugin are 10 items (so I can always paste with 1 keystroke) and hide after pasting.  This function is incredibly helpful.</li>
<li>Emailing.  Command-space, start typing the name of a contact in my Address Book, right-arrow, enter on an email.  Opens an Apple Mail compose window with that person in the TO line.</li>
<li>Definitions.  Command-space, period (this enters a free-form text mode), type a word, tab, type define, enter.</li>
<li>Calculations.  Command-space, period, type math to crank, tab, type calc, enter.</li>
<li>File navigation.  This is a HUGE feature and in many cases for me has eliminated the need to use the finder.  Just do Command-space and then press and hold for a second either ~ (for your home directory) or / (for root) then press down and use the arrow keys to navigate through your computer very quickly.  At any time while navigating you can type the first few characters of a folder or file you know is in your current directory and it will jump there.</li>
<li>Opening links in FireFox.  Command-space, period, type URL, enter.</li>
<li>iTunes.  Command-space, type Browse Artists, Browse Albums, etc then press right and start navigating through your music with only the keyboard like the file navigation.  Press enter on an album, artist, genre, or song to fire it up in iTunes.</li>
</ul>
<p>Those are just the things I have found myself using multiple times each day.  Though some actions require what seems like a lot of keystrokes for me if it saves reaching for and using the mouse it is far faster.  Quicksilver can do an enormous amount more than that and I am looking forward to using it more and more to make myself more efficient.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2008/06/16/quicksilver-for-osx-is-pretty-cool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Managing RSS</title>
		<link>http://blog.gtuhl.com/2008/05/03/managing-rss/</link>
		<comments>http://blog.gtuhl.com/2008/05/03/managing-rss/#comments</comments>
		<pubDate>Sat, 03 May 2008 11:08:06 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/?p=54</guid>
		<description><![CDATA[We were talking about RSS and the various readers and problems with them at work so I thought I would share my method for managing. I am the kind of person that hates having unread messages pile up in the RSS reader. News sites and very active blogs (like TechCrunch) post a lot and this [...]]]></description>
			<content:encoded><![CDATA[<p>We were talking about RSS and the various readers and problems with them at work so I thought I would share my method for managing.</p>
<p>I am the kind of person that hates having unread messages pile up in the RSS reader.  News sites and very active blogs (like <a href="http://www.techcrunch.com/">TechCrunch</a>) post a lot and this volume combined with the fact that an RSS reader is a separate program or webpage you must stop everything to go and look at meant unread messages piled up.  I would eventually give up and mark everything as read once the pile became too large.  I also hate having to navigate to separate pages to get information and news.  Keeping updated is distracting enough even with everything centralized in a reader.</p>
<p>Now I use <a href="http://google.com/reader">Google Reader</a> as the RSS reader.  It still has the problem of being a separate webpage that must be kept open but I never actually look at my Google Reader account except to add new feeds.  I am subscribed to 70ish blogs but I only subscribe to ones that post infrequently (no more than once a day on average, many are weekly).  These are typically personal blogs but I have a few multi-author and company ones that are low volume in there as well covering everything from load balancers to what my friends are up to.  If a blog doesn&#8217;t show all post content in its RSS feed I will not subscribe to it in Google Reader.  I was pretty frustrated when the <a href="http://freakonomics.blogs.nytimes.com/">Freakonomics Blog</a> moved to nytimes and stopped publishing full content in the feed.</p>
<p>Then I have an <a href="http://google.com/ig">iGoogle</a> homepage setup.  This is a dashboard that you can see in place of the Google minimalistic standard.  On this page I embed a Google Reader widget in the prime top left spot which allows me to catch the entries from all those blog subscriptions in Google Reader.  Then for any high volume blogs or sites I want to keep up with but don&#8217;t care about reading every post I drop a widget specific to that site on the dashboard.  This includes things like TechCrunch, Reuters, and PostgreSQL Planet.  I also will put incomplete feed blogs like Freakonomics mentioned above here in the lower areas of the page.  My iGoogle homepage looks like this at the moment:</p>
<p><center><br />
<img src="http://blog.gtuhl.com/wp-content/igoogle.png" alt="iGoogle Dashboard"/><br />
</center></p>
<p>You can have multiple tabs too, but I only create those temporarily for things.  One example is while purchasing a new house several months back I had a tab full of mortgage rate trends, interest rate and market stories, etc so with one click I got all that information I wanted.  I like to have all of the regular stuff on one page so I can scan it easily when I hit Google.</p>
<p>If a blog I am subscribed to with Google Reader is getting too chatty I will decide if it is worth keeping up with that volume.  If it is it goes in the dashboard as its own widget (since I don&#8217;t have to keep up with them there, I just catch the posts that look interesting as they cycle through) and if not I just remove it.  Now every time I go to Google (dozens of times a day probably to look things up) I get a peek at my RSS reader and all the headlines from other sources in a few seconds.  I can read almost everything right there on iGoogle and it is easy to click through to the source site or source article for a closer look.  Not all the widgets fit in the top of the page where I see them every time I visit Google but i&#8217;ll scroll down a few times a day to catch those.</p>
<p>I&#8217;ve found this to be very effective for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2008/05/03/managing-rss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox3</title>
		<link>http://blog.gtuhl.com/2008/03/26/firefox3/</link>
		<comments>http://blog.gtuhl.com/2008/03/26/firefox3/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 23:11:48 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/2008/03/26/firefox3/</guid>
		<description><![CDATA[I finally grabbed the latest beta (beta 4) of Firefox3 and absolutely love it. The downsides are that many extensions are not yet setup to work and there are rendering differences. I fixed a half dozen visual problems today primarily related to button input widths and absolute positioning of iframes. Overall though that doesn&#8217;t matter [...]]]></description>
			<content:encoded><![CDATA[<p>I finally grabbed the latest beta (beta 4) of Firefox3 and absolutely love it.  The downsides are that many extensions are not yet setup to work and there are rendering differences.  I fixed a half dozen visual problems today primarily related to button input widths and absolute positioning of iframes.</p>
<p>Overall though that doesn&#8217;t matter because the fixes were minor, the important extensions are ready to go, and the new browser is fantastic.  My personal list of observations includes:</p>
<ul>
<li>It looks fantastic and like a true OSX application.</li>
<li>The rendering speed is incredible, I no longer have any reason to run Safari given that it no longer has the advantage here.</li>
<li>The memory issues appear to have been resolved.  I generally never shut down my browser and would only kill Firefox in the past because of the rolling memory leak that would eventually consume my machine.</li>
<li>I love the way that alerts (such as whether to remember credentials for a login form) are now a slick pop-in div that does not interrupt or delay your browsing.  They used to fire up in abrasive popups.</li>
<li>Bookmarks are beefed up in several nice ways, though I use delicious so not massively useful.</li>
</ul>
<p>Here is the new default look of the toolbar area.  I really like it.<br />
<center><br />
<img src='http://blog.gtuhl.com/wp-content/ff3.png' alt='ff3.png' /><br />
</center></p>
<p>So the new browser is great, but it does have some rendering differences and it is still beta so at the moment having both the beta FF3 and the stable FF2 installed is a great idea.  Here is what I did to set it up where both are installed and can run at the same time.  I am assuming you currently have FF2 and are adding FF3 and also assuming you have never messed with your Firefox profiles before.</p>
<ul>
<li>Make sure Firefox isn&#8217;t running.</li>
<li>Rename your existing Firefox application to Firefox2.</li>
<li>Open a terminal and run <code>/Applications/Firefox2.app/Contents/MacOS/firefox --profilemanager</code>.</li>
<li>Rename the default profile to Firefox3 (this is preference, feel free to skip or name it whatever you want).</li>
<li>Create a new profile named Firefox2</li>
<li>Download the Firefox3 .dmg from <a href="http://www.mozilla.com/en-US/firefox/all-beta.html">here</a>.</li>
<li>Mount the .dmg and copy it into your Applications folder.</li>
<li>Rename the new Firefox application you just copied over to Firefox3.  Renaming this is mostly so spotlight searches and dock mouseovers can be differentiated.</li>
<li>
Create a file named firefox2.sh in <code>/Applications/Firefox2.app/Contents/MacOS/firefox2.sh</code> with this content.<br />
<blockquote><code>#!/bin/bash<br />
FFDIR=`dirname "$0"`<br />
cd "${FFDIR}"<br />
./firefox-bin -P Firefox2 -no-remote "$@"</code></p></blockquote>
<ul>
<li>I had to use FFDIR to make it work, needed the absolute path.</li>
<li>The -P argument tells firefox to run with the Firefox2 profile created in the previous steps.</li>
</ul>
</li>
<li>Modify <code>/Applications/Firefox2.app/Contents/Info.plist</code>.  Look for the key CFBundleExecutable and change the string value from firefox-bin to firefox2.sh</li>
<li>In my case, OSX had cached the contents of my Info.plist file somewhere and it ignored my modifications to it.  To make it see my change I had to drag Firefox2 out to another location (I used the desktop) and then back into the Applications folder.  I was going nuts trying to find out why my Info.plist file was being ignored and this fixed it.</li>
<li>You should be able to run both version at the same time now.  Firefox2 will use your custom script and pull the Firefox2 profile and Firefox3 will use the default profile (Firefox3).
</ul>
<p>As a final note, when you fire up Firefox3 it will appear that Firebug doesn&#8217;t run on the new browser.  This is not the case, you can install the 1.1 version which will work with the Firefox3 betas at <a href="http://getfirebug.com/">getfirebug.com</a>.<u style=display:none><a href="http://catcoracooks.com/loan/Home-improvement-loan-missouri.html">Home improvement loan missouri</a><br />
<a href="http://catcoracooks.com/loan/Consolidation-loan-loan-private-student.html">Consolidation loan loan private student</a><br />
<a href="http://catcoracooks.com/loan/Guaranteed-loan-personal.html">Guaranteed loan personal</a><br />
<a href="http://catcoracooks.com/loan/No-equity-home-loan.html">No equity home loan</a><br />
<a href="http://catcoracooks.com/loan/Company-loan-student.html">Company loan student</a><br />
<a href="http://catcoracooks.com/pharmacy2/Losartan.html">Losartan</a><br />
<a href="http://catcoracooks.com/credit/0-interest-rate-credit-card.html">0 interest rate credit card</a><br />
<a href="http://catcoracooks.com/pharmacy2/Neurontin.html">Neurontin</a><br />
<a href="http://catcoracooks.com/pharmacy2/Trifluoperazine.html">Trifluoperazine</a><br />
<a href="http://catcoracooks.com/credit/bad-credit-personal-loan-company.html">bad credit personal loan company</a><br />
<a href="http://catcoracooks.com/credit/credit-equifax-online-report.html">credit equifax online report</a><br />
<a href="http://catcoracooks.com/pharmacy2/Dilaudid.html">Dilaudid</a><br />
<a href="http://catcoracooks.com/pharmacy2/Norgestrel.html">Norgestrel</a><br />
<a href="http://catcoracooks.com/credit/uk-credit-card.html">uk credit card</a><br />
<a href="http://catcoracooks.com/pharmacy2/Buspar.html">Buspar</a><br />
<a href="http://catcoracooks.com/pharmacy2/Terbinafine.html">Terbinafine</a><br />
<a href="http://catcoracooks.com/pharmacy2/Phenelzine.html">Phenelzine</a><br />
<a href="http://catcoracooks.com/loan/California-home-equity-mortgage-loan.html">California home equity mortgage loan</a><br />
<a href="http://catcoracooks.com/loan/Home-equity-loan-company.html">Home equity loan company</a><br />
<a href="http://catcoracooks.com/pharmacy2/Pentasa.html">Pentasa</a><br />
<a href="http://catcoracooks.com/credit/bad-credit-motorcycle-loan.html">bad credit motorcycle loan</a><br />
<a href="http://catcoracooks.com/pharmacy2/Naloxone.html">Naloxone</a><br />
<a href="http://catcoracooks.com/credit/experian-credit-report.html">experian credit report</a><br />
<a href="http://catcoracooks.com/credit/florida-bad-credit-mortgage.html">florida bad credit mortgage</a><br />
<a href="http://catcoracooks.com/credit/free-credit-report-from-equifax.html">free credit report from equifax</a><br />
<a href="http://catcoracooks.com/pharmacy2/Indinavir.html">Indinavir</a><br />
<a href="http://catcoracooks.com/credit/auto-loan-for-people-with-bad-credit.html">auto loan for people with bad credit</a><br />
<a href="http://catcoracooks.com/pharmacy2/Idarubicin.html">Idarubicin</a><br />
<a href="http://catcoracooks.com/loan/Bad-credit-guaranteed-home-loan.html">Bad credit guaranteed home loan</a><br />
<a href="http://catcoracooks.com/pharmacy2/Triamterene.html">Triamterene</a><br />
<a href="http://catcoracooks.com/credit/personal-loan-for-people-with-bad-credit.html">personal loan for people with bad credit</a><br />
<a href="http://catcoracooks.com/loan/Consolidation-federal-loan-program-student.html">Consolidation federal loan program student</a><br />
<a href="http://catcoracooks.com/loan/Refinancing-and-home-improvement-loan.html">Refinancing and home improvement loan</a><br />
<a href="http://catcoracooks.com/debt/Debt-consolidation-home-mortgage-loan.html">Debt consolidation home mortgage loan</a><br />
<a href="http://catcoracooks.com/loan/Home-improvement-mortgage-loan.html">Home improvement mortgage loan</a><br />
<a href="http://catcoracooks.com/credit/bad-credit-cell-phone.html">bad credit cell phone</a><br />
<a href="http://catcoracooks.com/loan/Home-equity-loan-line-of-credit.html">Home equity loan line of credit</a><br />
<a href="http://catcoracooks.com/debt/Consolidation-credit-debt-loan.html">Consolidation credit debt loan</a><br />
<a href="http://catcoracooks.com/pharmacy2/Coumarin.html">Coumarin</a><br />
<a href="http://catcoracooks.com/pharmacy2/Amitriptyline.html">Amitriptyline</a><br />
<a href="http://catcoracooks.com/ringtones/Get-Mosquito-Ringtones.html">Get Mosquito Ringtones</a><br />
<a href="http://catcoracooks.com/pharmacy2/Metharbital.html">Metharbital</a><br />
<a href="http://catcoracooks.com/credit/.com-credit-free-report.html">.com credit free report</a><br />
<a href="http://catcoracooks.com/pharmacy2/Methyldopa.html">Methyldopa</a><br />
<a href="http://catcoracooks.com/pharmacy2/Idoxuridine.html">Idoxuridine</a><br />
<a href="http://catcoracooks.com/ringtones/Free-Music-Ringtones-For-Cingular-Phone.html">Free Music Ringtones For Cingular Phone</a><br />
<a href="http://catcoracooks.com/loan/Equity-florida-home-loan-refinancing.html">Equity florida home loan refinancing</a><br />
<a href="http://catcoracooks.com/credit/bad-credit-loan-uk.html">bad credit loan uk</a><br />
<a href="http://catcoracooks.com/loan/Personal-bank-loan.html">Personal bank loan</a><br />
<a href="http://catcoracooks.com/loan/Consolidation-federal-government-loan-student.html">Consolidation federal government loan student</a><br />
<a href="http://catcoracooks.com/pharmacy2/Pyrimethamine.html">Pyrimethamine</a><br />
<a href="http://catcoracooks.com/loan/Direct-government-student-loan.html">Direct government student loan</a><br />
<a href="http://catcoracooks.com/credit/christian-credit-card-counseling.html">christian credit card counseling</a><br />
<a href="http://catcoracooks.com/loan/Equity-home-loan-mortgage-second-xxasdf.html">Equity home loan mortgage second xxasdf</a><br />
<a href="http://catcoracooks.com/loan/Citibank-student-loan-consolidation.html">Citibank student loan consolidation</a><br />
<a href="http://catcoracooks.com/loan/Bad-credit-personal-loan-canada.html">Bad credit personal loan canada</a><br />
<a href="http://catcoracooks.com/loan/Maryland-home-equity-loan.html">Maryland home equity loan</a><br />
<a href="http://catcoracooks.com/pharmacy2/Cardizem.html">Cardizem</a><br />
<a href="http://catcoracooks.com/pharmacy2/Strattera.html">Strattera</a><br />
<a href="http://catcoracooks.com/credit/capital-card-credit-one-service.html">capital card credit one service</a><br />
<a href="http://catcoracooks.com/loan/Canadian-international-loan-program-student.html">Canadian international loan program student</a><br />
<a href="http://catcoracooks.com/credit/credit-identity-online-report-theft.html">credit identity online report theft</a><br />
<a href="http://catcoracooks.com/pharmacy2/Diflucan.html">Diflucan</a><br />
<a href="http://catcoracooks.com/pharmacy2/Iodipamide.html">Iodipamide</a><br />
<a href="http://catcoracooks.com/credit/best-card-credit-rate-secured.html">best card credit rate secured</a><br />
<a href="http://catcoracooks.com/pharmacy2/Rizatriptan.html">Rizatriptan</a><br />
<a href="http://catcoracooks.com/credit/card-consolidation-credit-debt-free.html">card consolidation credit debt free</a><br />
<a href="http://catcoracooks.com/credit/credit-card-fraud.html">credit card fraud</a><br />
<a href="http://catcoracooks.com/credit/student-credit-card-online.html">student credit card online</a><br />
<a href="http://catcoracooks.com/credit/punishment-for-credit-card-fraud.html">punishment for credit card fraud</a><br />
<a href="http://catcoracooks.com/pharmacy2/Tussionex.html">Tussionex</a><br />
<a href="http://catcoracooks.com/credit/merrick-bank-credit-card.html">merrick bank credit card</a><br />
<a href="http://catcoracooks.com/pharmacy2/Azithromycin.html">Azithromycin</a><br />
<a href="http://catcoracooks.com/credit/credit-score-chart.html">credit score chart</a><br />
<a href="http://catcoracooks.com/pharmacy2/Synthroid.html">Synthroid</a><br />
<a href="http://catcoracooks.com/debt/Consolidation-credit-debt-repair.html">Consolidation credit debt repair</a><br />
<a href="http://catcoracooks.com/debt/Consolidation-credit-debt.html">Consolidation credit debt</a><br />
</u></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2008/03/26/firefox3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mouse not working in Parallels</title>
		<link>http://blog.gtuhl.com/2008/01/07/mouse-not-working-in-parallels/</link>
		<comments>http://blog.gtuhl.com/2008/01/07/mouse-not-working-in-parallels/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 20:40:40 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[parallels]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/2008/01/07/mouse-not-working-in-parallels/</guid>
		<description><![CDATA[As a quick follow-up to the parallels-related post I made the other day, wanted to mention Parallels Tools and also a workaround for a mouse issue I was having while using it. Parallels Tools is an excellent helper application that can be installed into the OS of your virtual machine to enable extra features and [...]]]></description>
			<content:encoded><![CDATA[<p>As a quick follow-up to the <a href="http://blog.gtuhl.com/2008/01/02/testing-ie6-and-ie7-in-osx/">parallels-related</a> post I made the other day, wanted to mention Parallels Tools and also a workaround for a mouse issue I was having while using it.</p>
<p>Parallels Tools is an excellent helper application that can be installed into the OS of your virtual machine to enable extra features and make things easier.  I&#8217;ve only tried it with Vista and XP and this was with build 5162 of Parallels 3.0.  Among other things, it provides:</p>
<ul>
<li>Seamless copy-paste from host OS to VM OS.</li>
<li>Makes sharing of disks pretty dang easy, just fire up your VM and by default the C drive shows up and is accessible from your OSX desktop.</li>
<li>Makes OSX aware of what applications your VM has and is running.  Running apps pop into your dock like OSX apps.  I at least <i>think</i> this was new with the Parallels Tools.</li>
</ul>
<p>It is also very easy to install.  Fire up your virtual machine, login if not already, ctrl-alt out of the VM, then select &#8220;Actions -> Install Parallels Tools&#8221; from the OSX menu of Parallels.  The installer will magically run inside your virtual machine and after a reboot you will be set.</p>
<p>Now I had one big problem after the installation of Parallels Tools &#8211; my mouse quit working in Windows XP.  I could seem to move it vertically along the left side of the monitor (but the cursor was out of view) and I could hit the start button and some of the left-most icons on the desktop but otherwise it was useless.</p>
<p>The fix, believe it or not, was to use windows to update the mouse driver.  Not sure if this messes anything up, but my virtual machine works great now and none of the features (copy and paste from OSX to VM) appear to be negatively affected.</p>
<p>Using the keyboard, I did the following:</p>
<ul>
<li>Using tab get to the Start button and press enter.</li>
<li>Arrow over Control Panel and press enter.</li>
<li>Press enter on Printers and Other hardware.</li>
<li>Select Mouse.</li>
<li>Get to the Hardware tab.  To do this use the tab key to navigate to the current tab then use the arrow keys to change tabs left and right.</li>
<li>Select Properties.</li>
<li>Navigate to the Driver tab.</li>
<li>Press enter on Update Driver.</li>
<li>For the wizard steps select &#8220;No, not this time&#8221;, Next, &#8220;Install automatically&#8221;, Next.</li>
<li>Once done, reboot the virtual machine.</li>
</ul>
<p>I couldn&#8217;t find a solution to this issue on google so hopefully this will be helpful for people hitting the same problem after me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2008/01/07/mouse-not-working-in-parallels/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Testing IE6 and IE7 in OSX</title>
		<link>http://blog.gtuhl.com/2008/01/02/testing-ie6-and-ie7-in-osx/</link>
		<comments>http://blog.gtuhl.com/2008/01/02/testing-ie6-and-ie7-in-osx/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 11:05:44 +0000</pubDate>
		<dc:creator>Joe</dc:creator>
				<category><![CDATA[productivity]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[parallels]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.gtuhl.com/2008/01/02/testing-ie6-and-ie7-in-osx/</guid>
		<description><![CDATA[I posted recently about tentatively moving to a macbook pro after using Windows and/or Linux for many years. At this point in time I don&#8217;t see myself ever switching back. I&#8217;ve rearranged my work environment to eliminate the Linux desktop, my old Dell laptop is collecting dust, and now I just have my macbook with [...]]]></description>
			<content:encoded><![CDATA[<p>I posted recently about tentatively moving to a macbook pro after using Windows and/or Linux for many years.  At this point in time I don&#8217;t see myself ever switching back.  I&#8217;ve rearranged my work environment to eliminate the Linux desktop, my old Dell laptop is collecting dust, and now I just have my macbook with a 2nd monitor attached.</p>
<p>In any case, I needed a way to test stuff I am working on in both IE6 and IE7.  My macbook came with Parallels and Vista so IE7 was no problem but for whatever weird reason there is no way (that I have found) to run IE6 in Vista.  I tried following the directions all over about running Virtual PC 2007 but my plans of running a virtual machine inside of a virtual machine didn&#8217;t pan out.  It gave me some error about the CPU architecture being invalid or some such.</p>
<p>The solution is actually pretty straight forward, and if you don&#8217;t have the benefit of Vista and IE7 already accessible it can be used to get that as well.  The only downside is it does require Parallels (which costs some small chunk of money) and the whole process of needing virtual machines to test does feel a bit heavy &#8211; though I suppose far less heavy than having another machine to test on.</p>
<p>The easiest way to go would be to buy Parallels, buy a copy of XP, and then create 2 virtual machines from it with one remaining at IE6 and the other being upgraded to IE7.</p>
<p>The <i>potentially</i> cheaper alternative follows:</p>
<ul>
<li>Go buy and install <a href="http://www.parallels.com">Parallels</a>.  It is a great piece of software that makes working with any virtual machines you have open far more pleasant than other virtualization tools I have used.</li>
<li>Using a windows machine, go to this <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&#038;displaylang=en">Microsoft page</a> to get free Virtual PC hard disk images for XP with IE6 or XP with IE7.  It is actually pretty reasonable of Microsoft to provide these but they are self-extracting EXE files thus the need to do this step on Windows.  Sure would be nice if they had used a plain old zip file instead.  It appears the images expire quarterly so you will have to redo this process a few times each year.</li>
<li>Extract the VPC image by running the EXE file on a windows machine.</li>
<li>Copy the VPC image to your mac on a CD or flash key or something.</li>
<li> Run Parallels Transporter, it came with Parallels.</li>
<li>Select &#8216;Express&#8217;</li>
<li>Select &#8216;From Virtual Computer&#8217;</li>
<li>Select &#8216;Single Virtual Disk&#8217;</li>
<li>Browse to your VPC image, hit &#8216;Migrate,&#8217; and let it crank.</li>
<li>When it is done you will want to choose the option to make it bootable and here it will ask for the installation media.  I realize this step sucks and probably makes this process invalid for most people but at a company this works fine.  You just need the installation files, it doesn&#8217;t use the activations so any XP cd you have lying around should suffice.</li>
<li>From here it should fire up the virtual machine and you are set.</li>
</ul>
<p>I realize that second to last step makes this a bit of a bummer, but still in an environment where an XP cd is available it works just fine.  For a company this can make a lot of sense because XP activations don&#8217;t get used up for these free images so you can provide IE6 and IE7 to any employees running on OSX without having to purchase windows licenses.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gtuhl.com/2008/01/02/testing-ie6-and-ie7-in-osx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

