<?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>Coffee on the Keyboard &#187; windows</title>
	<atom:link href="http://coffeeonthekeyboard.com/tag/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://coffeeonthekeyboard.com</link>
	<description>by James Socol</description>
	<lastBuildDate>Fri, 20 Apr 2012 22:17:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>		<item>
		<title>Local Web Development</title>
		<link>http://coffeeonthekeyboard.com/local-web-development-323/</link>
		<comments>http://coffeeonthekeyboard.com/local-web-development-323/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 23:14:30 +0000</pubDate>
		<dc:creator>James</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[vm]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://coffeeonthekeyboard.com/?p=323</guid>
		<description><![CDATA[I&#8217;m not ashamed of it: I like Windows. I think the user experience is light-years ahead of Gnome and KDE. There&#8217;s nothing ostensibly wrong with OS X, but there are little usability differences and frankly switching isn&#8217;t worth the annoyance to me. That&#8217;s why I run Windows 7 on all three computers I use daily. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not ashamed of it: I like Windows. I think the user experience is light-years ahead of Gnome and KDE. There&#8217;s nothing ostensibly <em>wrong</em> with OS X, but there are little usability differences and frankly switching isn&#8217;t worth the annoyance to me. That&#8217;s why I run Windows 7 on all three computers I use daily.</p>
<p>This is only a problem when I try to work on LAMP web applications. Sure, I could install <a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a>, but running Apache/PHP on Windows is really not close enough to a production environment. So I have two choices: I can dual-boot Linux and work in an OS—well, a window manager—I don&#8217;t like, or I can turn to virtual machines.<span id="more-323"></span></p>
<p><a href="http://www.vmware.com/">VMWare</a> is a pretty heavyweight solution. <a href="http://www.vmware.com/products/fusion/">Fusion</a>, for OS X, is a great product. But in Windows, I opt for Sun&#8217;s <a href="http://www.virtualbox.org/">VirtualBox</a>.</p>
<div id="attachment_324" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-324" title="virtualbox-new" src="http://coffeeonthekeyboard.com/wp-content/uploads/2009/12/virtualbox-new-300x206.png" alt="VirtualBox New Virtual Machine Wizard" width="300" height="206" /><p class="wp-caption-text">VirtualBox New Virtual Machine Wizard</p></div>
<p>VirtualBox lets me run Linux (I opt for <a href="http://fedoraproject.org/get-fedora">Fedora</a> as it&#8217;s close to our production environment and I like it) in just another window, right next to Firefox.</p>
<p>To create a new <abbr title="Virtual Machine">VM</abbr>, you&#8217;ll only need VirtualBox and a Linux ISO. (Or, you could use a pre-existing VM, or an &#8220;appliance,&#8221; copied from somewhere else. I&#8217;m not going to cover that.) Step through the wizard. Some of my recommended settings:</p>
<div id="attachment_325" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-325" title="virtualbox-disk" src="http://coffeeonthekeyboard.com/wp-content/uploads/2009/12/virtualbox-disk-300x268.png" alt="VirtualBox New Disk Settings" width="300" height="268" /><p class="wp-caption-text">VirtualBox New Disk Settings</p></div>
<ul>
<li>At least 512 MB of RAM for running Gnome+Apache+MySQL+VIm(+Firef0x?) in the VM.</li>
<li>At least 30 GB of hard disk. Yes, you can add more later, but expanding an existing disk is difficult, and if you use a &#8220;Dynamically expanding storage&#8221;-type of disk (see above) it won&#8217;t take the full 30 GB right off the bat.</li>
<li>There are two ways to go about doing Network settings—I do both.
<ul>
<li>Use Bridged networking. This gives your VM an IP address accessible to the rest of your network.</li>
<li>Use NAT. This gives your VM an IP address on a virtual network that only exists in your computer, but with a virtual gateway giving your VM access to the internet.</li>
<li>(You can also use Host-only networking, but that would prevent your VM from accessing the internet at all, and that&#8217;s no good.)</li>
</ul>
</li>
<li>Mount your installation media ISO as a CD/DVD drive via VirtualBox. You&#8217;ll be able to boot off the ISO and install Linux. You may run into issues if you leave the ISO mounted after installation.</li>
</ul>
<div id="attachment_326" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-326" title="virtualbox-network" src="http://coffeeonthekeyboard.com/wp-content/uploads/2009/12/virtualbox-network-300x260.png" alt="VirtualBox Network Settings" width="300" height="260" /><p class="wp-caption-text">VirtualBox Network Settings</p></div>
<p>Once you&#8217;re in Linux, set up your web server environment (use yum, apt-get, or whatever other package manager you choose). The key software I use:</p>
<ul>
<li>Apache</li>
<li>PHP</li>
<li>MySQL</li>
<li>Memcached</li>
<li>Sphinx</li>
<li>Squid</li>
</ul>
<p>With the software above, I can very nearly replicate the production environment for our web applications, while still spending most of my time in Windows. (When I do switch to the VM, I&#8217;m usually in VIm, my favorite text editor, anyway.)</p>
<p>Apache/PHP/MySQL is the typical PHP app stack. We use memcached for output caching (on <a href="http://support.mozilla.com/">SUMO</a>, anyway). We use Sphinx to power our search engine. Squid is useful from time to time for approximating an application behind a reverse-proxy cache and load-balancing server. (You could also use nginx or Varnish.)</p>
<p>If you use NAT or Bridged networking, you&#8217;ll be able to navigate to your VM&#8217;s IP address from a browser on the host computer (in my case, in Windows). By using Bridged, I can access my local Apache instance from browsers on Windows, Linux, or a nearby Mac, which is immensely valuable when doing browser support work and testing. I can even send my VM&#8217;s IP address to other people in the office and have them look at my local work.</p>
<p>There is a performance cost with a VM. HTTP requests would come back faster in a real Linux environment, and sometimes I do boot into Linux, but the convenience is worth it to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://coffeeonthekeyboard.com/local-web-development-323/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

