<?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>Steve Lindstrom</title>
	<atom:link href="http://www.stevenlindstrom.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stevenlindstrom.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 04 Apr 2011 20:23:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>In /etc/hosts We Trust</title>
		<link>http://www.stevenlindstrom.com/blog/in-etchosts-we-trust/</link>
		<comments>http://www.stevenlindstrom.com/blog/in-etchosts-we-trust/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 20:23:07 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=79</guid>
		<description><![CDATA[This article will help you to prevent yourself from being unproductive by showing you how to block websites using your /etc/hosts file. <a href="http://www.stevenlindstrom.com/blog/in-etchosts-we-trust/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
To prevent myself from getting distracted while I work (cough Facebook) I blocked a number of websites in my <em>hosts</em> file.  If you want to do it too and you&#8217;re using a Mac, open up Terminal and type the following:
</p>
<pre>
sudo nano /etc/hosts
</pre>
<p>
Enter your password when prompted and then nano will open your <em>hosts</em> file, where you&#8217;ll see something like this:
</p>
<pre>
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost
</pre>
<p>
To block a website add it as an entry in this file by adding this line:
</p>
<pre>
127.0.0.1      www.facebook.com # This will block Facebook
</pre>
<p>so the entire file should look like this:</p>
<pre>
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost
127.0.0.1      www.facebook.com # This will block Facebook
</pre>
<p>To save the file press:</p>
<pre>ctrl+o</pre>
<p>then press enter, and then to quit nano press</p>
<pre>ctrl+x</pre>
<p>
Just don&#8217;t forget that you added the entry &#8211; there were a couple of times that I thought a handful of websites were down that I had actually blocked.  If you choose to block Facebook you&#8217;ll probably notice how many websites make use of Facebook widgets because you&#8217;ll see a whole bunch of blocks (iframes) that give you 404s.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/in-etchosts-we-trust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Being Thankful</title>
		<link>http://www.stevenlindstrom.com/blog/on-being-thankful/</link>
		<comments>http://www.stevenlindstrom.com/blog/on-being-thankful/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 15:51:47 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Entrepreneurship]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=67</guid>
		<description><![CDATA[Entrepreneurship Today is Thanksgiving. I woke up and the first thing I thought about was business and entrepreneurship and how excited I was to work on a project I&#8217;ve been planning (details coming soon). I walked upstairs, fired up the &#8230; <a href="http://www.stevenlindstrom.com/blog/on-being-thankful/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>Entrepreneurship</h2>
<p>Today is Thanksgiving.  I woke up and the first thing I thought about was business and entrepreneurship and how excited I was to work on a project I&#8217;ve been planning (details coming soon).  I walked upstairs, fired up the computer and hopped on Twitter and I saw the most amazing thing &#8211; nothing.  Everyone&#8217;s taking the day off it seems, which is a nice surprise.</p>
<h2>Buying a Domain</h2>
<p>
Recently I&#8217;ve been trying to buy a domain name that&#8217;s been parked for a decade.  I won&#8217;t mention the name so you don&#8217;t try to shank me and buy it before me, but the tricky part was that it had private registration so I didn&#8217;t know how to contact the owner.  It turns out that if you e-mail the contact e-mail listed in the private whois data, it gets forwarded to the owner.  I tried that and I also <a href="http://news.ycombinator.com/item?id=1924950" title="Posted the Question">posted the question</a> to <a href="http://www.news.ycombinator.com/newest" title="Hacker News">Hacker News</a> and one guy expressed some interest in helping me out.  I eventually e-mailed him and we talked about the best way to go about getting the domain, but unfortunately the domain&#8217;s owners won&#8217;t sell it.  Seems to me that there&#8217;s some sentimental attachment to it (which is dumb).  I just hope they actually use it for something.  Anyways, thanks to <a href="http://itsalldiet.com/" title="Alex">Alex</a> for all of his help!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/on-being-thankful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modular Zend Framework Application &amp; Virtual Hosts Guide</title>
		<link>http://www.stevenlindstrom.com/blog/modular-zend-framework-application-virtual-hosts-guide/</link>
		<comments>http://www.stevenlindstrom.com/blog/modular-zend-framework-application-virtual-hosts-guide/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 01:38:19 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=60</guid>
		<description><![CDATA[Since I have a bad memory when it comes to this sort of thing I made a guide for myself that illustrates how to create a modular Zend Framework application and also how to set up virtual hosts. Download the &#8230; <a href="http://www.stevenlindstrom.com/blog/modular-zend-framework-application-virtual-hosts-guide/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
Since I have a bad memory when it comes to this sort of thing I made a guide for myself that illustrates how to create a modular Zend Framework application and also how to set up virtual hosts. Download the pdf <a href="http://www.antherllc.com/documents/modular-zf-app-tutorial.pdf" title="Modular Zend Framework Application Guide"> here</a>.
</p>
<p>
One of these days I&#8217;m going to make it into a sweet bash script.  Stay tuned for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/modular-zend-framework-application-virtual-hosts-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>$this, $(this), this, and this (again)</title>
		<link>http://www.stevenlindstrom.com/blog/this-this-this-and-this-again/</link>
		<comments>http://www.stevenlindstrom.com/blog/this-this-this-and-this-again/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 01:30:06 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=50</guid>
		<description><![CDATA[Javascript is a fickle bitch. That&#8217;s why I love her so much &#8211; one second everything is great, and the next you&#8217;re getting owned. Hard. Luckily, there&#8217;s frameworks out there, like jQuery, that help make things a little easier, though &#8230; <a href="http://www.stevenlindstrom.com/blog/this-this-this-and-this-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Javascript is a fickle bitch.  That&#8217;s why I love her so much &#8211; one second everything is great, and the next you&#8217;re getting owned.  Hard.</p>
<p>Luckily, there&#8217;s frameworks out there, like jQuery, that help make things a little easier, though at times it can still be super confusing.  Today I spent close to 8 hours writing a jQuery plugin and I learned a whole ton of stuff.  I&#8217;ll be writing up a complete tutorial (mainly for myself as a reference guide) over at <a title="Anther LLC." href="http://www.antherllc.com">Anther</a> but here&#8217;s some quick things.<br />
<code><br />
// Refers to a jQuery object<br />
$(this);<br />
// Occurs a lot in jQuery documentation without explanation.<br />
// Assigns a jQuery object to a variable for readability<br />
$this = $(this);<br />
// Refers to a node in the DOM.  In the context of jQuery it depends<br />
// on your scope.  If you're in an anonymous function it refers to the<br />
// DOMWindow.  If you're in a jQuery plugin (AKA object), it refers to<br />
// that particular object.<br />
this;<br />
</code></p>
<p>
Mixing scopes is where it gets really hairy and frustrating.  You&#8217;ll see more in my plugin tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/this-this-this-and-this-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Whole Bunch of Stuff</title>
		<link>http://www.stevenlindstrom.com/blog/a-whole-bunch-of-stuff/</link>
		<comments>http://www.stevenlindstrom.com/blog/a-whole-bunch-of-stuff/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 03:13:40 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Entrepreneurship]]></category>
		<category><![CDATA[Goals]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=43</guid>
		<description><![CDATA[I post fairly infrequently, but usually when I do, I&#8217;ll write the post on localhost, then upload it here. Not doing that this time since I&#8217;m feeling impatient and bored. Not sure why/if that&#8217;s relevant. This&#8217;ll be a long-ish post &#8230; <a href="http://www.stevenlindstrom.com/blog/a-whole-bunch-of-stuff/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>
  I post fairly infrequently, but usually when I do, I&#8217;ll write the post on localhost, then upload it here.  Not doing that this time since I&#8217;m feeling impatient and bored.  Not sure why/if that&#8217;s relevant.  This&#8217;ll be a long-ish post so topics are broken up into small sections (duh).
</p>
<p>
  <strong>Business</strong><br />
  Business has been steady since I left Mother Lockheed (good riddance).  I&#8217;ve been doing some contracting for a couple of people/businesses and it&#8217;s been keeping food on the table for the most part.  The only problem I have with contracting is that it&#8217;s doing the exact same thing I was doing for Lockheed, just on my own.  I think I&#8217;ve <em>finally</em> figured out why I left my job: I have a difficult time concentrating on work if it&#8217;s not something I find extremely interesting, which to me, someone else&#8217;s products are not. (Apologies if any of my clients stumble upon this)
</p>
<p>
<em>My goal for 2011 is to stop contracting</em> and to make a living providing software as a service (SaaS) products for businesses.  Driving home today I think I&#8217;ve also figured out what kind of products I want to make.  I love taking data from various places, aggregating it, and displaying it.  My products will all involve this somehow.<br />
I&#8217;m working on my first product now, and while it doesn&#8217;t aggregate your data, it will still help you manage it.  I also had another great idea for a second product which will be more difficult to make, but I think it could make a ton of cash.
</p>
<p>
<strong>Entrepreneurship</strong><br />
Entrepreneurship is the best thing ever.  If I was born to do anything, this was it.  Ask anyone that&#8217;s been around me since age 13 &#8211; very often you&#8217;ll hear me say &#8220;that could be a business.&#8221;
</p>
<p>
  I&#8217;ve been fortunate enough to get a mentor through school and though we&#8217;ve only met twice so far, I feel like his insight and experience are pushing me in the right direction.  If nothing else, meeting with my mentor gets me super motivated and excited about building a business.  We&#8217;ve bounced some ideas around and I&#8217;m hoping to have a very early pre-alpha version of one of them before our next meeting in a couple of weeks.  Stay tuned for that.
</p>
<p>
Also at school I watched the first round of an elevator pitch competition.  It was kind of awkward since the only people there were the judges, the person pitching, and the people that had already pitched.  I was also kind of disappointed in the quality of the pitches, especially since some of those students are graduating this year.  In reality I shouldn&#8217;t say these things because these people had the nerve to actually go do it, and for that I respect them as public speaking isn&#8217;t my favorite thing ever.  I guess I was just hoping for a better turnout and some really awesome, charismatic pitches for <em>real</em> ideas that they wanted to get funded.  Maybe I&#8217;ll show &#8216;em how it&#8217;s done next year.
</p>
<p>
<strong>Charity</strong><br />
Today I spent a couple of hours and around $75 making a basket for the Central Florida Basket Brigade.  It&#8217;s a charity that gives less fortunate families food for Thanksgiving.  In reality I probably shouldn&#8217;t have because I also need to eat and $75 can last me a while these days, but it felt pretty good.  I could really use the good karma anyways.
</p>
<p><em>I was going to write about some other stuff but I think it would come out wrong, as either venting or in the narrative of a 5 year that wants attention, so in favor of good taste, I won&#8217;t be writing anymore</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/a-whole-bunch-of-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple Almost Got It Right With Time Machine</title>
		<link>http://www.stevenlindstrom.com/blog/apple-almost-got-it-right-with-time-machine/</link>
		<comments>http://www.stevenlindstrom.com/blog/apple-almost-got-it-right-with-time-machine/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 22:01:23 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=40</guid>
		<description><![CDATA[Today (as I type this, actually) I&#8217;m backing up my MacBook Pro using Time Machine and it&#8217;s pretty good. But I think they still got it wrong. When you go to back your stuff up, Apple assumes you want to &#8230; <a href="http://www.stevenlindstrom.com/blog/apple-almost-got-it-right-with-time-machine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today (as I type this, actually) I&#8217;m backing up my MacBook Pro using Time Machine and it&#8217;s pretty good.  But I think they still got it wrong.  When you go to back your stuff up, Apple assumes you want to back *everything* up, including the operating system, and then you can exclude things you do not want to back up.  Really, the only things I want to back up are my web dev projects, pictures, music, movies, and documents.  To do this I have to exclude everything *except* these things (which was over 100,000 files).</p>
<p>I say that Apple almost got it right because I think backing every single file up is the incorrect way to do it.  While it probably does save time when you have to restore, and it&#8217;s probably easier for the average person, I think it should be assumed that the person is going to be using the backup in case something catastrophic happens &#8211; namely hard drive failure, or upgrading to a new computer.  If it&#8217;s hard drive failure, then yes, it&#8217;d be nice to just pop a new one in and instantly have your computer back.  </p>
<p>However, if it&#8217;s hard drive failure chances are you&#8217;ve either dropped your computer and will have to buy a new one, there&#8217;s something wrong with your computer (like my old one that seemingly had a cooling issue) and you&#8217;re gonna buy a new one, or your hard drive was so old that you&#8217;re probably gonna to buy a new computer anyways.  In all three scenarios, you&#8217;re getting a new computer and it&#8217;s already got everything installed (except your data) and since it&#8217;s a new computer, the OS has probably changed (think Leopard to Snow Leopard, or Snow Leopard to Tiger soon) and you would be downgrading.  I would much rather select the things I DO want, and then reinstall the OS and whatever applications were &#8220;lost&#8221; since I have all of the discs in my bookshelf anyways.</p>
<p>My backup just finished, so will too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/apple-almost-got-it-right-with-time-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Dark Art of SEO&#8230;</title>
		<link>http://www.stevenlindstrom.com/blog/the-dark-art-of-seo/</link>
		<comments>http://www.stevenlindstrom.com/blog/the-dark-art-of-seo/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 23:17:50 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=36</guid>
		<description><![CDATA[Today I received an e-mail from someone that found my horribly incomplete website through Twitter (which is pretty cool! (&#8230;that they found me, not that I haven&#8217;t finished this site yet&#8230;)) that was looking for help with SEO on their &#8230; <a href="http://www.stevenlindstrom.com/blog/the-dark-art-of-seo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I received an <a href="mailto:steve@antherllc.com" title="e-mail">e-mail</a> from someone that found my horribly incomplete website through Twitter (which is pretty cool!  (&#8230;that they found me, not that I haven&#8217;t finished this site yet&#8230;)) that was looking for help with SEO on their website.  I wrote back and explained my take on SEO, which is basically &#8220;make a website correctly and have good content&#8221; rather than trying to trick your way into a high rank.  After I sent the e-mail I figured I&#8217;d post some of it on here for posterity.<br />
<h4>My Take on SEO</h4>
<p>Most people think of SEO as a dark art where you need to have specific insights to the inner workings of the search engines to help your page rank (which I suppose <em>would</em> help), but there are also a lot of fairly simple best practices you can employ to help your page rank, which I discuss below.</p>
<p>That being said, when it comes to SEO I simply use these (and other) best practices when developing websites because if you try to be sneaky about getting a high page rank using questionable &#8220;techniques&#8221; your website could very well be removed from the search results, which would be a terrible thing.</p>
<p><strong>Bear in mind that I am not an SEO expert (nor do I care to be).  (For that matter, most &#8220;SEO Experts&#8221; are also not &#8220;SEO Experts&#8221; either)</strong></p>
<p>When I think of SEO I think of:</p>
<ul>
<li>Syntactically correct markup</li>
<li>Having a sitemap</li>
<li>Fast page loading time</li>
<li>Keyword rich URLs</li>
<li>Keyword rich, quality content (this is the most important)</li>
</ul>
<p><strong>Syntactically correct markup</strong> just means that all of the code written to display your page is mistake-free.  You can check to see if the markup is correct or not by visiting <a href="http://validator.w3.org/" title="W3C Validator">http://validator.w3.org</a> and entering your URL.</p>
<p><strong>Sitemaps</strong> allow search engines to index your website easier, and as an added bonus your visitors can also use it to navigate your site if they want.</p>
<p><strong>Page loading time</strong> is beginning to affect search engine ranking because it indicates the quality of a website.  When comparing two websites it would seem that a faster, well built website would have more legitimacy than a slower, poorly constructed website because it was likely made by a professional.  There are a number of ways that you can decrease your page loading time, but a great first step is to have <strong>syntactically correct markup</strong>.</p>
<p><strong>Keyword rich URLs</strong> provide a description of what&#8217;s on a specific page with only a quick glance.  For example, it&#8217;s pretty obvious what you&#8217;ll find at a URL that reads <em>http://www.mywebsite.com/login</em> or <em>http://www.mywebsite.com/family-photos</em> whereas you would have no idea what you would find at a more cryptic URL like <em>http://www.mywebsite.com/page58gh.php</em></p>
<p><strong>Keyword rich, quality content</strong> (emphasis on quality) is really the most important thing for your website.  In the old days people would game the system by putting a big block of text at the bottom of each page with hundreds of keywords so the search engines would pick them up.  That &#8220;technique&#8221; hasn&#8217;t worked for quite some time now and it can actually hurt your page rank because it makes your site look spammy.  Quality content about a subject will win out over the more subtle SEO techniques in many cases and it will strengthen your online brand at the same time.  This is why a lot of online retailers (like http://www.woot.com for example) have blogs in addition to their online store fronts.</p>
<p>And there&#8217;s other stuff too, like putting your &#8220;script&#8221; tags last in your page&#8217;s head section since they prevent concurrent loading, but for the purposes of the e-mail I sent, I figured it wasn&#8217;t relevant.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/the-dark-art-of-seo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fake Out Google API With Virtual Hosts</title>
		<link>http://www.stevenlindstrom.com/blog/fake-out-google-api-with-virtual-hosts/</link>
		<comments>http://www.stevenlindstrom.com/blog/fake-out-google-api-with-virtual-hosts/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 23:59:34 +0000</pubDate>
		<dc:creator>Steve Lindstrom</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Google API]]></category>
		<category><![CDATA[Virtual Hosts]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://www.stevenlindstrom.com/blog/?p=4</guid>
		<description><![CDATA[If you&#8217;re like me you have a ton of projects that are half way done because you go off on tangents learning to implement cool things, like stuff from Google&#8217;s APIs. Here&#8217;s how it usually goes down: Come up with &#8230; <a href="http://www.stevenlindstrom.com/blog/fake-out-google-api-with-virtual-hosts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me you have a ton of projects that are half way done because you<br />
go off on tangents learning to implement cool things, like stuff from Google&#8217;s APIs.<br />
Here&#8217;s how it usually goes down:</p>
<ol>
<li>Come up with a cool idea and Google it to find the easiest/fastest implementation</li>
<li>Discover that Google&#8217;s already got an API for it</li>
<li>Hit http://code.google.com and grab an API key</li>
<li>Implement the API on a local copy of your project before pushing it live</li>
<li>Cry when work locally because your local URL isn&#8217;t the one you registered</li>
</ol>
<p>Sucks huh?  Well it turns out that you <em>can</em> test locally by faking out<br />
Google using virtual hosts.</p>
<p>Setting up virtual hosts is pretty easy.  All you have to do is edit 2 files,<br />
<em>httpd-vhosts.conf</em> and <em>hosts</em>, and then restart Apache.<br />
Here&#8217;s how you do it on a Mac with XAMPP installed:</p>
<ol>
<li> Open a terminal and find your hosts file:<code><br />
cd /etc; sudo nano hosts;<br />
{enter password when prompted}<br />
</code></li>
<li> Add an entry at the end for the site you&#8217;re working on:<code><br />
127.0.0.1          my_website<br />
</code></li>
<li> Save the file and exit. For you non-Nano users, hit <code>Ctrl+O</code> and<br />
then enter to save the file, then <code>Ctrl+X</code> to exit Nano.</li>
<li> Find and edit your httpd-vhosts.conf file:<code><br />
cd /Applications/XAMPP/xamppfiles/etc/extra;<br />
sudo nano httpd-vhosts.conf;<br />
{Enter your root password when prompted}<br />
</code></li>
<li> Now that you&#8217;ve got that open, again you need to add an entry for the site you&#8217;re working on:<code><br />
&lt;VirtualHost *:80&gt;<br />
ServerAdmin     {your e-mail goes here}<br />
DocumentRoot    "/Applications/XAMPP/xamppfiles/htdocs/my_website/public"<br />
ServerName      {The URL you registered with Google prefixed with www.}<br />
ErrorLog        "/Applications/XAMPP/xamppfiles/htdocs/my_website/logs/error.log"<br />
&lt;/VirtualHost&gt;<br />
</code><br />
Save and close like you did in step 3.
</li>
</ol>
<p><strong>DocumentRoot</strong> is where your <em>index.php</em> file is located.  If you<br />
use Zend Framework it&#8217;s your public directory like I have it above.</p>
<p><strong>ServerName</strong> is what you registered with Google when you requested an<br />
API key.  This is what you will type in your browser to view your local project.<br />
<del datetime="2010-04-24T18:02:00+00:00">Since my web app isn&#8217;t live yet I&#8217;m not sure what this would do if you&#8217;ve got<br />
a version at the actual URL.  Worst case scenario you can (<em>gasp!</em>)<br />
disconnect from your internet connection.  Let me know <a href="http://www.twitter.com/stevelindstrom">@stevelindstrom</a> what the answer to this is.</del>  Even if you have a live version of your website up at that url, you will be routed to your local version.  To get to my live version all I do is enter the URL without the <em>www</em>.</p>
<p><strong>ErrorLog</strong> is where Apache errors will be written to if you screwed<br />
something up while setting up your virtual hosts.  If the file doesn&#8217;t exist<br />
<code>touch</code> it (but not too much &#8211; it&#8217;ll fall off) :<code><br />
mkdir -p {path to your error log excluding the filename};<br />
touch {path to your error log including the filename};<br />
</code></p>
<p>Now that that&#8217;s all done it&#8217;s time for the moment of truth.  Restart XAMPP:<code><br />
sudo /Applications/XAMPP/xamppfiles/xampp restart<br />
{enter password when prompted}<br />
</code></p>
<p>If you screwed anything up you&#8217;ll see errors on the console and they&#8217;ll be in<br />
your error log that you touched earlier.  If you didn&#8217;t, open your browser of<br />
choice and enter your URL.  Apparently Google only cares about what the browser<br />
<em>thinks</em> your location is, so when your virtual hosts make it seem like<br />
you&#8217;re hitting the Google servers from your actual website, that&#8217;s good enough.<br />
Sneaky, sneaky.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stevenlindstrom.com/blog/fake-out-google-api-with-virtual-hosts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

