<?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>Jason P. Brown</title>
	<atom:link href="http://jasonpbrown.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jasonpbrown.com</link>
	<description>an experiment in brown noise</description>
	<lastBuildDate>Fri, 05 Mar 2010 22:06:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>For the Love of Seeing &#8211; Gunnar Computer Glasses</title>
		<link>http://jasonpbrown.com/journal/for-the-love-of-seeing-gunnar-computer-glasses/</link>
		<comments>http://jasonpbrown.com/journal/for-the-love-of-seeing-gunnar-computer-glasses/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 20:09:33 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[My Journal]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=160</guid>
		<description><![CDATA[I&#8217;ve decided that my eyes need a break.  That means I either have to get into landscaping or warehouse work, or invest in some more technology.  Since the latter is pretty much my thing, I need a pair of these Gunnar eSport PPKs (UPDATE &#8211; Ordered on 3/1/10)
My buddy Dan says they rock, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided that my eyes need a break.  That means I either have to get into landscaping or warehouse work, or invest in some more technology.  Since the latter is pretty much my thing, I need a pair of these <a href="http://www.gunnars.com/remix/esport_ppk.php">Gunnar eSport PPKs</a> (UPDATE &#8211; Ordered on 3/1/10)</p>
<p>My buddy Dan says they rock, and well, that&#8217;s good enough for me.   I&#8217;ll post my review as soon as I&#8217;m qualified.</p>
<p>UPDATE #2 &#8211; 3/5/10, I have them in hand, or rather, on head!  I&#8217;m still getting used to them, but will post a review after the end of a solid week.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/journal/for-the-love-of-seeing-gunnar-computer-glasses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strange Wordpress Attachment Page Error</title>
		<link>http://jasonpbrown.com/development/strange-wordpress-attachment-page-error/</link>
		<comments>http://jasonpbrown.com/development/strange-wordpress-attachment-page-error/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 19:02:57 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=157</guid>
		<description><![CDATA[I was running into a strange Wordpress error on attachment pages that were linked from a gallery embed on a normal blog post, and only for unauthenticated users.  This happened in the both the custom theme as well as the default theme of the site in question under Wordpress 2.9.2
The error was &#8220;Warning: Attempt to [...]]]></description>
			<content:encoded><![CDATA[<p>I was running into a strange Wordpress error on attachment pages that were linked from a gallery embed on a normal blog post, and only for unauthenticated users.  This happened in the both the custom theme as well as the default theme of the site in question under Wordpress 2.9.2</p>
<p>The error was &#8220;Warning: Attempt to assign property of non-object in /path/to/wp-content/link-template.php on line 999&#8243;</p>
<p>The offending code looked like this:</p>
<pre>if ( empty($post-&gt;post_title)  )
$post-&gt;post_title = $previous ? __('Previous Post') : __('Next Post');</pre>
<p>Even though the theme the site is using didn&#8217;t have a custom Image Attachment Template (image.php), the default theme does, so it led me to believe the issue lied with the core files.  Essentially, it seems as though the post object wasn&#8217;t being set, and since I haven&#8217;t yet had the time to delve into a more proper method for resolving the error, I simply changed the if conditions to the following.</p>
<pre>if ( empty($post-&gt;post_title) &amp;&amp; !is_attachment() )
$post-&gt;post_title = $previous ? __('Previous Post') : __('Next Post');</pre>
<p>That cleared the error so at least I can get on with my life, and look into the real source of the problem when some free time shakes loose, preferrably before the next Wordpress Upgrade boils the error back to the surface.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/development/strange-wordpress-attachment-page-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Ubuntu Dev Platform: Part 2 &#8211; Install Ubuntu</title>
		<link>http://jasonpbrown.com/development/dev-platform-2/</link>
		<comments>http://jasonpbrown.com/development/dev-platform-2/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 05:00:14 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=144</guid>
		<description><![CDATA[Welcome to part 2 in a series of articles on building, using Sun&#8217;s VirtualBox,   a basic Ubuntu 9.10 virtual machine (VM)   for the development of PHP and Ruby   on Rails (RoR) applications.  However, we aren&#8217;t quite there yet.  In this step, we are installing Ubuntu Linux (9.10) on the [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to part 2 in a series of articles on building, using Sun&#8217;s <a href="http://www.virtualbox.org/">VirtualBox</a>,   a basic <a href="http://www.ubuntu.com">Ubuntu 9.10</a> virtual machine (VM)   for the development of <a href="http://www.php.net">PHP</a> and <a href="hthttp://rubyonrails.org/">Ruby   on Rails</a> (RoR) applications.  However, we aren&#8217;t quite there yet.  In this step, we are installing Ubuntu Linux (9.10) on the blank Virtual Machine we created in <a href="http://jasonpbrown.com/development/dev-platform-1/">part 1</a>.</p>
<p><span id="more-144"></span></p>
<h2>Install Ubuntu</h2>
<p><a href="http://www.ubuntu.com/getubuntu/download">Download Ubuntu</a>.     By default, the button downloads the 32-bit version.  If you need  64-bit, or a version other than the one listed, click on the Alternative  download options link to expose more options.  When it&#8217;s done, you  should have an disc image (.ISO) of the installation media on your hard  drive.   If you are installing on a blank computer rather than a virtual  machine (VM), you will want to burn that .ISO to a CD.  In Windows 7  it&#8217;s part of the native functionality, but explaining how to do that is  outside the scope of this article.</p>
<p>Next we need to insert the media into our VM so it is available for  installation.  The easiest way to accomplish that on a brand new VM is  just to go ahead and start it.  You can do this by double-clicking the  name of the VM in the main VirtualBox window.  This will prompt you with  the First Run wizard.  Click next to pass the welcome screen and you  will arrive at the Select Installation Media screen.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/installubuntu-select-media-1.png"><img class="aligncenter" title="Installing Ubuntu - Select  Media" src="http://jasonpbrown.com/wp-content/uploads/2010/01/installubuntu-select-media-1-300x227.png" alt="Installing Ubuntu - Select Media" width="300" height="227" /></a></p>
<p><strong>CD/DVD-ROM Device</strong> should be selected by default.  If not, make  it so.  Under Media Source, click on the <strong>folder icon</strong> to the  right of the drop-down.  This will launch the Virtual Media Manager with  the CD/DVD Images tab selected.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/installubuntu-vmm.png"><img class="aligncenter" title="Install Ubuntu - Virtual Media  Manager" src="http://jasonpbrown.com/wp-content/uploads/2010/01/installubuntu-vmm-300x237.png" alt="Install Ubuntu - Virtual Media Manager" width="300" height="237" /></a></p>
<p>Click on the <strong>Add</strong> icon and browse to, then select, the Ubuntu  .ISO you previously downloaded.  This will close the Virtual Media  Manager and return you to the First Run wizards Select Installation  Media screen.  Note the Media Source.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/installubuntu-select-media-2.png"><img class="aligncenter" title="Install Ubuntu - Select Media  Final" src="http://jasonpbrown.com/wp-content/uploads/2010/01/installubuntu-select-media-2-300x227.png" alt="Install Ubuntu - Select Media Final" width="300" height="227" /></a></p>
<p>Clicking <strong>Next </strong>will take you to a summary page.  Click <strong>Finish </strong>to begin booting the VM with the selected installation media.  The  Ubuntu install should begin almost immediately.</p>
<p>Use your arrow keys to select your language, then hit enter.  At the  resulting menu, select <strong>Install Ubuntu</strong>.  This will load a GUI  installer for Ubuntu.</p>
<p>I have to tell you, the Ubuntu installation is about as easy as OS  installations can get.  Select your Language, timezone, keyboard  preferences, partitioning scheme, enter your user information, and let  &#8216;er rip.  For me, the timezone and user information screen were the only  two I needed to provide meaningful input for, the rest were good by  default.</p>
<p>When it&#8217;s time to restart the machine you will prompted to remove the  installation media.  You can do this easily enough from the VirtualBox  menu at the top of the VM window; <strong>Devices =&gt; CD/DVD Devices =&gt;  Unmount CD/DVD Device</strong>.  At the point, you can safely reboot by  pressing the Enter key.</p>
<p>Once the VM comes back up, and you&#8217;ve logged in to your new Ubuntu  installation for the very first time, the first thing you will want to  do is install any update that has been published for your version.  Do  this through the GUI by navigating the System menu at the top left of  your Ubuntu interface (<strong>System =&gt; Administration =&gt; Update  Manager</strong>), or through the command line by bringing up a terminal  window (<strong>Applications =&gt; Accessories =&gt; Terminal</strong>) and  entering the following commands:</p>
<p><em>The dollar sign is not part of the command but is displayed to  indicate the start of a new line which will be helpful when my examples  start wrapping.</em></p>
<p><code>$ sudo aptitude update<br />
$ sudo aptitude upgrade</code></p>
<p>As soon as that is finished, you might have/want to reboot the  virtual machine.</p>
<p><code>$ sudo shutdown now -r</code></p>
<p>Our next step is installing the VirtualBox Guest Additions which are a  set of tools designed to make interacting with your new VM a whole lot  easier.  Using the VirtualBox menu, select <strong>Devices =&gt; Install  Guest Additions&#8230;</strong> or simple press your Host key and the D key  together (<strong>Right CTRL + D</strong> by default).  This will mount the Guest  Additions CD and probably prompt you with a worthless auto-play window.   Go ahead and cancel out of that, and return to your terminal window.</p>
<p>For 32-bit systems:<br />
<code>$ sudo /media/cdrom/VBoxLinuxAdditions-x86.run</code></p>
<p>For 64-bit systems:<br />
<code>$ sudo /media/cdrom/VBoxLinuxAdditions-amd64.run</code></p>
<p>Time for another reboot.</p>
<p><code>$ sudo shutdown now -r</code></p>
<p>Once it is back up, your are ready to continue on to the next step.   However, if you are thinking you might want to share folder between your  Host machine and your VM, it might behoove you to take a peek at <a href="http://jasonpbrown.com/personal-computing/virtualbox-folder-sharing/">this  article I wrote on folder sharing</a>.  Otherwise, continue on to Step  3: MySQL, PHP, REE, and nginx via source through Passenger!</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/development/dev-platform-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building an Ubuntu Dev Platform: Part 1 &#8211; VirtualBox</title>
		<link>http://jasonpbrown.com/development/building-an-ubuntu-dev-platform-part-1-virtualbox/</link>
		<comments>http://jasonpbrown.com/development/building-an-ubuntu-dev-platform-part-1-virtualbox/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 04:49:23 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=140</guid>
		<description><![CDATA[The goal of this article is to build, using Sun&#8217;s VirtualBox,  a basic Ubuntu 9.10 virtual machine (VM)  for the development of PHP and Ruby  on Rails (RoR) applications.  We will be relying on the nginx web  server, MySQL database engine, and Phusion Passenger (along with  their Ruby Enterprise Edition) [...]]]></description>
			<content:encoded><![CDATA[<p>The goal of this article is to build, using Sun&#8217;s <a href="http://www.virtualbox.org/">VirtualBox</a>,  a basic <a href="http://www.ubuntu.com">Ubuntu 9.10</a> virtual machine (VM)  for the development of <a href="http://www.php.net">PHP</a> and <a href="hthttp://rubyonrails.org/">Ruby  on Rails</a> (RoR) applications.  We will be relying on the <a href="http://nginx.org/">nginx</a> web  server, <a href="http://www.mysql.com/">MySQL</a> database engine, and <a href="http://www.modrails.com/">Phusion Passenger</a> (along with  their <a href="http://www.rubyenterpriseedition.com/">Ruby Enterprise Edition</a>)  in order to keep the development platform consistent with my particular  production environment.</p>
<p><span id="more-140"></span><img title="More..." src="http://jasonpbrown.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>While much of this is specific to my particular requirements, this  would be a good starting point for anyone looking to get their feet wet  with PHP and/or RoR application development.  It would also be a good  starting point for people interested in familiarizing or re-acquainting  themselves with Linux, as Ubuntu is about as newb-friendly as Linux  distributions get.</p>
<p>I should also note that even though I&#8217;m installing this as a virtual  machine, it would work equally well on a real machine without the use of  VirtualBox.  If you are going that route, or you are familiar with  creating new virtual machines, then skip the first step altogether and  go on to <a href="http://jasonpbrown.com/development/dev-platform-2/">part 2</a>.</p>
<h2>Create the Virtual Machine</h2>
<p>Install the <a href="http://www.virtualbox.org/wiki/Downloads">latest release of  VirtualBox</a> for your existing platform.  The latest version at time  of writing was 3.1.2.</p>
<p>Once installed, launch VirtualBox. From the <strong>Machine</strong> menu,  select <strong>New </strong>(or press CTRL+N) to start the  Create New Virtual  Machine wizard.  Click <strong>Next</strong> to continue past the welcome screen  to the Name and OS Type selection screen.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-name-os.png"><img class="aligncenter" title="Create VM - Name and OS Type" src="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-name-os-300x227.png" alt="Create VM - Name and OS Type" width="300" height="227" /></a></p>
<p>Enter a descriptive name (like UbuntuDev) in the text box provided,  and choose <strong>Linux</strong> from the <strong>Operating System</strong> drop-down.   After selecting Linux, the drop-down for <strong>Version</strong> automatically  changed to <strong>Ubuntu</strong> on my version of VirtualBox.  If you are  running a 64-bit host operating system with an architecture that  supports VT-x or AMD-V virtualization technologies, then you can change  the <strong>Version</strong> to <strong>Ubuntu (64 bit)</strong>.  If what I just said made  you dizzy, you aren&#8217;t sure how to check, or you might be exporting the  VM for use on a computer you are unsure of, then leave the <strong>Version</strong> as <strong>Ubuntu</strong>.  There is no significant difference for our purposes,  but make a note of which you selected so that you know whether to be  downloading 32-bit or 64-bit binaries as we go on.   Click <strong>Next</strong> to continue to the Memory screen.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-memory.png"><img class="aligncenter" title="Create VM - Memory allocation" src="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-memory-300x227.png" alt="Create VM - Memory allocation" width="300" height="227" /></a></p>
<p>Select the amount of memory (RAM) you&#8217;d like to dedicate to the  Ubuntu VM.  A good rule of thumb is to assign less than half of your  computer&#8217;s physical RAM to your VM, but you should never need more than  2GB (2048MB) for this sort of appliance.  In fact, 1GB (<strong>1024mb</strong>)  should be more than enough.  Also, keep in mind that this RAM is only  used while the VM is running, so it&#8217;s not like you have to be overly  stingy either.  Click <strong>Next</strong> to continue to the Virtual Hard Disk  screen.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-harddisk.png"><img class="aligncenter" title="Create VM - Virtual Hard Disk" src="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-harddisk-300x227.png" alt="Create VM - Virtual Hard Disk" width="300" height="227" /></a></p>
<p>The Virtual Hard Disk screen is cake, assuming that <strong>Boot Hard Disk  (Primary Master)</strong> is checked, and <strong>Create new hard disk</strong> is  selected, you can click <strong>Next</strong> to spawn the New Virtual Disk wizard  screen.  At the Welcome screen, click Next to continue to the Hard Disk  Storage Type selection.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-vhd-type.png"><img class="aligncenter" title="Create VM - Disk Storage Type" src="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-vhd-type-300x227.png" alt="Create VM - Disk Storage Type" width="300" height="227" /></a></p>
<p>Another easy one, choose <strong>Dynamically expanding storage</strong>, and  click <strong>Next</strong> to continue on to the Disk Location and Size screen.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-vhd-size.png"><img class="aligncenter" title="Create VM - Virtual Disk  Location and Size" src="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-vhd-size-300x227.png" alt="Create VM - Virtual Disk Location and Size" width="300" height="227" /></a></p>
<p>The <strong>Location</strong> field should be auto-populated with a variation  of the name you chose for this VM, but feel free to change it if you  like.  The <strong>Size</strong> warrants some consideration.  First, an  explanation; virtual disks are represented individually as single large  files on your hard drive.  Had we chose Fixed-size storage on the  previous screen, then whatever value we enter here would determine the  size of the corresponding file.  However, since we chose Dynamically  expanding storage, the size selected here only represents the largest  possible size the virtual drive could consume, but in reality the file  stored on our physical hard drive will be much smaller.  In this  specific case, it will be less than 5GB after we&#8217;ve installed  everything.  In addition, running out of space is kind of a pain to  rectify, so we definitely don&#8217;t want to be stingy.  Mine defaulted to  8.00 GB, and even though I know that will be enough room for this VM&#8217;s  intended purpose, I doubled it to be safe. Tripling it works too, or  even quadrupling it since it is very unlikely that this VM will ever  need that much space, and it will likely sit below 10gb for the duration  of it&#8217;s lifespan.  Once you&#8217;ve selected a size, click <strong>Next</strong> to  see the virtual disk summary screen.  If everything looks right, <strong>Finish</strong> to return to the virtual machine summary page.</p>
<p style="text-align: center;"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-summary.png"><img class="aligncenter" title="Create VM - Summary" src="http://jasonpbrown.com/wp-content/uploads/2010/01/createvm-summary-300x227.png" alt="Create VM - Summary" width="300" height="227" /></a></p>
<p>Review, and when ready, click <strong>Finish</strong> there too.</p>
<p>Need a break?  Take one, otherwise you can continue on to <a href="http://jasonpbrown.com/development/dev-platform-2/">Part 2 &#8211; Installing Ubuntu</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/development/building-an-ubuntu-dev-platform-part-1-virtualbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>For the love of Sitting &#8211; The Topstar Sitness 5</title>
		<link>http://jasonpbrown.com/journal/topstar-sitness-5/</link>
		<comments>http://jasonpbrown.com/journal/topstar-sitness-5/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 23:18:08 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[My Journal]]></category>
		<category><![CDATA[Wish List]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=127</guid>
		<description><![CDATA[After sitting on one of these at the St. Louis Science Center, I&#8217;ve decided it is a must have.  Brooke and I both need one, red or black would do.
At time of writing, Overstock.com had the best price.  (89.99USD for the red ones)
Here is a Shot of Brooke&#8217;s hand and a green one!

]]></description>
			<content:encoded><![CDATA[<p>After sitting on one of these at the <a href="http://www.slsc.org">St. Louis Science Center</a>, I&#8217;ve decided it is a must have.  Brooke and I both need one, red or black would do.</p>
<p>At time of writing, <a href="http://www.overstock.com/Office-Furniture/Topstar-Sitness-5-Mesh-Exercise-Ball-Chair/3353826/product.html?cid=123620&amp;fp=F&amp;ci_src=14110944&amp;ci_sku=11444589#product-detail">Overstock.com had the best price</a>.  (89.99USD for the red ones)</p>
<p>Here is a Shot of Brooke&#8217;s hand and a green one!</p>
<p><a href="http://jasonpbrown.com/wp-content/uploads/2010/02/l_2048_1536_E295ABDB-393D-4217-9ADA-4BE748F0109E.jpeg"><img class="alignnone size-full" src="http://jasonpbrown.com/wp-content/uploads/2010/02/l_2048_1536_E295ABDB-393D-4217-9ADA-4BE748F0109E.jpeg" alt="" width="320" height="240" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/journal/topstar-sitness-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VirtualBox Folder Sharing</title>
		<link>http://jasonpbrown.com/computing/virtualbox-folder-sharing/</link>
		<comments>http://jasonpbrown.com/computing/virtualbox-folder-sharing/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 00:05:36 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=38</guid>
		<description><![CDATA[So you read about how much I love VirtualBox and you decided to give it a go.  You downloaded and installed VirtualBox (3.1.2 at time of writing) on your Windows computer.  Then you grabbed the latest .ISO of Ubuntu Linux (9.10) and walked through VirtualBox&#8217;s New Virtual Machine Wizard to create  your very first virtual [...]]]></description>
			<content:encoded><![CDATA[<p>So you read about how much <a href="http://jasonpbrown.com/personal-computing/i-love-virtualbox/">I love VirtualBox</a> and you decided to give it a go.  You <a href="http://www.virtualbox.org/wiki/Downloads">downloaded and installed VirtualBox</a> (3.1.2 at time of writing) on your Windows computer.  Then you grabbed <a href="http://www.ubuntu.com/getubuntu/download">the latest .ISO of Ubuntu Linux</a> (9.10) and walked through VirtualBox&#8217;s New Virtual Machine Wizard to create  your very first virtual appliance.  Or maybe you went the other route and started off with a Linux machine and created a Windows-based virtual appliance.</p>
<p>Either way, now you want to swap files between the two of them.</p>
<p><span id="more-38"></span></p>
<p>The first thing you have to do, in both cases, is install the VirtualBox Guest Additions from inside your new virtual machine.  You install these from an .ISO that is installed with the VirtualBox application.  Basically you have to mount that ISO as a CD/DVD.  Thankfully, VirtualBox takes a little of the confusion out of  the process by providing you with a shortcut in the Devices Menu on your already running virtual machine. The keyboard shortcut is Host+D (Right CTRL + D by default).</p>
<h2>Installing the VirtualBox Guest Additions on Linux (Ubuntu)</h2>
<p>After ignoring the useless (in my case) auto-run prompt, I opened up a terminal window (Applications -&gt; Accessories -&gt; Terminal).  I changed directories to where the CD was mounted (/media/cdrom), and ran ls to see the contents of the directory.  After identifying the appropriate version your virtual environment, go ahead an run it as root (or use sudo if available).  On 64bit Ubuntu, it looks just like this (don&#8217;t type the dollar sign, it&#8217;s used to illustrate the beginning of the command):</p>
<p><code>$ cd /media/cdrom<br />
$ sudo ./VBoxLinuxAdditions-amd64.run</code></p>
<p>The <strong>sudo</strong> command temporarily elevates your privileges so you can run the installer, and it will ask you to re-enter your password, so you know.</p>
<p>Get used to this process.  Every time you update the kernel you are going to want to re-install the guest additions.  Also, whenever you update the VirtualBox application itself, it&#8217;s a good idea to re-install them as well.</p>
<h2>Installing VirtualBox Guest Additions on Windows</h2>
<p>&#8230;is easy as pie.  Shortly after you mount the guest additions .ISO, an auto-run prompt will likely appear and you can just follow the prompts to run the installer.  If it doesn&#8217;t autoplay, browse the computer to the CD-ROM drive and double-click on VBoxWindowsAdditions.exe.  That should sort out the appropriate version for your current operating system.  If you are unsure about individual components, just say yes to everything.  No harm, no foul.</p>
<p>Again, in case you missed it above, it is possible that future windows updates could break the guest additions, so if the guest machine acts goofy after a windows update just reinstall them.   Also, plan on re-installing the guest additions everytime you update the main VirtualBox application on your host machine.   It&#8217;s painless, so quit whining.</p>
<p>Now that you have the guest additions installed, lets practice sharing!</p>
<h2>Sharing Files from a Windows Host to a Linux Guest</h2>
<p><a href="http://blogs.sun.com/tao/entry/virtual_box_shared_folder_between">Zhiqi Tao posted on this topic</a>, but let me attempt a little more detail.  For this example we are going to assume you have a local directory called &#8220;C:\Downloads&#8221; that you want your Linux virtual machine to access.</p>
<p>On your still running virtual machine, go to the &#8220;Devices&#8221; menu and select &#8220;Shared Folders&#8230;&#8221;.   From there you will be prompted with a &#8220;Shared Folders&#8221; window, and in that window you should see a blue folder with a green plus sign in the upper right.  Click on it or press the Insert key to open an &#8220;Add Share&#8221; window.  Use the drop-down for the &#8220;Folder Path&#8221; and select &#8220;Other&#8221; to browse to the directory you intend to share, or you can simply type it in.  If you browsed to the directory, then it will auto-populate the &#8220;Name&#8221; field otherwise you will have to type that in as well.  The name field is very important here, and you will want to pay special attention to case.  Since we want this share to be available every time we start the virtual machine, and we want to be able to write to it from either system, leave &#8220;Read-only&#8221; unchecked, but make sure you check &#8220;Make Permanent&#8221;.  See the example below:</p>
<div id="attachment_41" class="wp-caption aligncenter" style="width: 334px"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/vbox-sharing-w2l-addshare.png"><img class="size-full wp-image-41" title="VirtualBox - Add Share Window (Windows Host)" src="http://jasonpbrown.com/wp-content/uploads/2010/01/vbox-sharing-w2l-addshare.png" alt="VirtualBox - Add Share Window (Windows Host)" width="324" height="246" /></a><p class="wp-caption-text">VirtualBox - Add Share Window (Windows Host)</p></div>
<p>Click &#8220;OK&#8221; to add the share and return to the &#8220;Shared Folders&#8221; window.  Under &#8220;Machine Folders&#8221; you should now see an entry with the name and path you specified above, along with Full Access. Click okay to return to the virtual machine.  We are going to navigate to your home folder and create a miniature directory structure to support this initial share as well as any future shares you decide to make.  Then, we are going to add a mount command to /etc/fstab and to /etc/rc.local so that the share is automatically made available every time you start the virtual machine.  Play along at home and remember, Linux is case sensitive!</p>
<p><code>$ cd ~<br />
$ mkdir Shared<br />
$ mkdir Shared/Downloads</code></p>
<p>You are going to need to know the full path to the new Downloads directory.  It should be &#8220;/home/&lt;USERNAME&gt;/Shared/Downloads&#8221; where &lt;USERNAME&gt; is the login you created when you installed the system.  To be sure, you can enter the following commands:</p>
<p><code>$ cd Shared/Downloads<br />
$ pwd</code></p>
<p>Make note of the output of the <strong>pwd</strong> command (which stands for <strong> </strong><span style="text-decoration: underline;">p</span>resent <span style="text-decoration: underline;">w</span>orking <span style="text-decoration: underline;">d</span>irectory), and don&#8217;t forget about case sensitivity (you tired of me saying that yet?).  Let&#8217;s continue.</p>
<p><code>$ sudo nano /etc/fstab</code></p>
<p>Add the following line below the existing entries using the space or tab key between elements.  Remember to replace &lt;USERNAME&gt;  with your login name, and if you have been using different directories then change those as well.   It&#8217;s long, but please remember it should go on a single line!</p>
<p><code>Downloads       /home/&lt;USERNAME&gt;/Shared/Downloads  vboxsf  rw,user,noauto,exec,utf8 0       0</code></p>
<p>The first element is the name of the share, and it must be an exact match for the &#8220;Name&#8221; in the list of &#8220;Shared Folders&#8221; (see the &#8220;Folder Name&#8221; in the &#8220;Add Share&#8221; example window above).  Hit CTRL+O  then Enter to write the file, then CTRL+X to exit nano.  Now we have to edit another file in /etc/, but before we do that, we need to do some self-examination.</p>
<p><code>$ id</code></p>
<p>Make note of the <strong>uid</strong> and <strong>gid</strong> values, because we are going to need them.  Mine were both 1000, and yours may very well be 1000 too.</p>
<p><code>$ sudo nano /etc/rc.local</code></p>
<p>Add the following line directly <span style="text-decoration: underline;">above</span> the line that reads &#8220;exit 0&#8243;.  Feel free to copy and paste, but remember to change your <strong>uid</strong> and <strong>gid</strong> values in addition to swapping out &lt;USERNAME&gt; with your actual login!</p>
<p><code>mount -t vboxsf -o uid=1000,gid=1000,dmode=755,fmode=644 Downloads /home/&lt;USERNAME&gt;/Shared/Downloads</code></p>
<p>Again, Hit CTRL+O  then Enter to write the file, then CTRL+X to exit nano.  Reboot the machine with the following:</p>
<p><code>$ sudo shutdown now -r</code><br />
or<br />
<code>$ sudo reboot</code></p>
<p>When the machine comes back up, /home/&lt;USERNAME&gt;/Shared/Downloads on your guest will be the same as C:\Downloads on your host machine, and should be completely writable from either direction.  Voila!</p>
<h2>Sharing Files from a Linux Host to a Windows Guest</h2>
<p>This is a much simpler process in comparison.  First, you select &#8220;Shared Folders&#8230;&#8221; from the &#8220;Devices&#8221; menu, then press the insert key or click the folder with the green plus sign in the resulting &#8220;Shared Folders&#8221; window to bring up the &#8220;Add Share&#8221; dialogue.   Use the &#8220;Folder Name&#8221; drop-down to select &#8220;Other&#8221; and browse to the folder you&#8217;d like to share.</p>
<p>Make note of the Folder Name that is auto-filled, or change it to something of your liking.  Keep it simple, and one word.  Then make sure &#8220;Read Only&#8221; is not checked, but check &#8220;Make Permanent&#8221;.  See the example in the section above.</p>
<p>Then, in your Windows Host, open up explorer and from the menu bar choose &#8220;Tools -&gt; Map Network Drive&#8221;.  Choose a drive letter from the drop down, and for the folder type</p>
<p><code>\\vboxsvr\&lt;FolderNameFromAddShareDialogue&gt;</code></p>
<p>Obviously you want to replace &lt;FolderNameFromAddShareDialogue&gt; with the actual folder name from the add share dialogue.   In our previous example, it was &#8220;Downloads&#8221;.</p>
<p>Make sure you check &#8220;Reconnect at logon&#8221; and click on the &#8220;Finish&#8221; button.  There you go, you are all set, easy peasy.  And really, this process works no matter what kind of host you are working with.  Windows is just easy that way.</p>
<p>Hopefully you find this useful!</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/computing/virtualbox-folder-sharing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I Love VirtualBox</title>
		<link>http://jasonpbrown.com/computing/i-love-virtualbox/</link>
		<comments>http://jasonpbrown.com/computing/i-love-virtualbox/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 19:09:07 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=23</guid>
		<description><![CDATA[Sun&#8217;s VirtualBox is a tool I&#8217;ve come to rely on for virtualization, and I seriously rely on virtualization.  What is virtualization and why do I rely on it so much?   Virtualization, in the most basic possible sense of the not-really-a-word, is a method of running one or more operating systems inside another wholly separate [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.virtualbox.org/">Sun&#8217;s VirtualBox</a> is a tool I&#8217;ve come to rely on for virtualization, and I seriously rely on virtualization.  What is virtualization and why do I rely on it so much?   Virtualization, in the most basic possible sense of the not-really-a-word, is a method of running one or more operating systems inside another wholly separate operating system.  I rely on it so much, because honestly, I have multiple geek personalities to deal with.  One of me has a long history of geeking out to windows tech and is an avid gamer so it is essential to my computing well-being that I keep a decent Windows-based PC around.    Yet, another me has hefty development interests Linux and Open-source technologies.  I don&#8217;t see that changing anytime soon, and I have a lot of work ahead of me to bring those skills on par with my lengthy experience in Microsoft technology.  Furthermore, I&#8217;m certain there are me&#8217;s out there that I haven&#8217;t even met yet.</p>
<p><span id="more-23"></span></p>
<p>VirtualBox solves this problem for me(s) elegantly.  My Desktop is a 64bit Windows 7 machine with a healthy 8gb of ram and a roomy hard drive.   This is my primary machine for both work and play.  My secondary PC is a Laptop running 64bit Linux (Ubuntu), with 3gb of ram and a 500gb drive.  It&#8217;s feasible that I could use each machine dependent on what technology I needed at the time, but that plan is better on paper than it is in practice.</p>
<p>For one, not only would I hate to run every single piece of Microsoft-dependent software I could possibly need on my daily-use PC, some of them are just downright incompatible with each other.  Even if they did play nice together, the whole of it would represent a serious deterioration in available local resources which is not so good for my happiness.  Besides, I&#8217;ve never managed to shake my operating system re-installation habit that has become an almost Pavlovian response to sluggish Windows computing even though, admittedly, Microsoft OSes have gotten a lot better than they once were.  Regardless, the rigorous demand on local resources and my compulsion for total drive wipes combined with what would be a delicate and time-consuming installation process is, quite frankly, a recipe for disaster.   The bare truth of it all is, I need more than one Windows environment.  Unfortunately, I need more than one Linux environment as well.  I&#8217;m not so proud that I can&#8217;t admit being neck deep in an open-source learning curve.  I&#8217;m still experimenting and I fully expect to engage in some catastrophic mistake-making.  I need an experimental environment, a stable development one, and a working production one as well.</p>
<p>Thanks to virtualization, I can satisfy all these demands on a single computer.  The only hurdle is storage capacity, and current hard drive sizes make that mostly moot.  With 8gb of RAM, I can even run several of these environments concurrently.</p>
<p>For example, I have several Windows-based Virtual Appliances (or machines).  One is a functional backup of my previous web server running 32bit Windows 2003/SQL2000/Cold Fusion, another is a 64bit Windows 2008 R2 MOSS 2007 development environment, and last one is a 32bit Windows Vista general .NET development platform.  I&#8217;ll probably have a 4th one once MOSS 2010 ships.  As it stands right now, I&#8217;m using the old 2003 server as a staging area for .NET apps I write on from the Vista machine, and it is not uncommon for both of those to be running at the same time.</p>
<p>As far as Linux goes, I have 2 virtual appliances.  The first is a replica of my current co-located web server powered by Ubuntu 8.04 LTS.  It serves the dual purpose being both a living back-up of my production environment as well as proving ground for new development.  My second appliance is an Ubuntu 9.10 desktop machine that is in the process of becoming my PHP, Ruby, and Python development environment.  Both of those run simultaneously nearly 100% of the time.  The kicker is, I still have enough free resources to take a game-break now and then, and I&#8217;m not talking about solitaire.</p>
<p>It gets better.  Not only is VirtualBox free, it is also cross platform.  That means that I can export my virtual appliances from either my Windows Desktop or my Linux Laptop and import them to the other.  If I need to take my Windows show on the road, I simply import the appropriate appliance to my Laptop, and off I go.</p>
<p>Truthfully though, VirtualBox isn&#8217;t the only application that can do all that.  I think the more recent VMWare Player is quite capable of doing that much.  The one thing I love about VirtualBox though, is its &#8220;Seamless Mode&#8221;.  Seamless mode is kind of hard to explain, but essentially it is a way of running a virtual appliance so that it feels as though you are running two operating systems at once.  It simply adds a new taskbar or set of taskbars to your normal operating system interface.  This is a fantastic way to run two distinct graphical environments.  Whether I am are doing cross-platform work, client-server development, or just looking to experience a new OS from the comfort and safety of familiar ground, VirtualBox&#8217;s Seamless Mode is pure awesomeness.</p>
<p>I think a couple screenshots might be in order, to really drive it home.  In both examples, we have a 64bit Ubuntu 9.10 virtual appliance running on a Windows 7 Host.  The first shot is the standard mode, with Ubuntu running in it&#8217;s own window.  The second is Ubuntu running in Seamless Mode right over the top of the Windows 7 interface.  Click each thumbnail for a full size image (1920&#215;1080 PNG &gt; 1mb).</p>
<div id="attachment_28" class="wp-caption aligncenter" style="width: 310px"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/vbox-ubuntu-over-w7-std.png"><img class="size-medium wp-image-28" title="VirtualBox - Ubuntu on W7" src="http://jasonpbrown.com/wp-content/uploads/2010/01/vbox-ubuntu-over-w7-std-300x168.png" alt="VirtualBox - Ubuntu on W7" width="300" height="168" /></a><p class="wp-caption-text">VirtualBox - Ubuntu on W7 - Standard Mode</p></div>
<div id="attachment_27" class="wp-caption aligncenter" style="width: 310px"><a href="http://jasonpbrown.com/wp-content/uploads/2010/01/vbox-ubuntu-over-w7-seemless.png"><img class="size-medium wp-image-27" title="VirtualBox - Ubuntu on W7 - Seemless Mode" src="http://jasonpbrown.com/wp-content/uploads/2010/01/vbox-ubuntu-over-w7-seemless-300x168.png" alt="VirtualBox - Ubuntu on W7 - Seemless Mode" width="300" height="168" /></a><p class="wp-caption-text">VirtualBox - Ubuntu on W7 - Seemless Mode</p></div>
<p>How cool is that?  If you didn&#8217;t see anything nifty, look closer.  In the second image, you will notice the Ubuntu (Gnome) menu bar extended across the entire screen, with the Ubuntu task bar sitting comfortably on top of the Windows 7 taskbar at the bottom.  The fully accessible Windows Desktop peeks out from between them.</p>
<p>It was a total &#8220;Wow&#8221; moment for me the first time I experienced it and I&#8217;ve been hooked ever since.</p>
<p>Now, VirtualBox isn&#8217;t exactly perfect, but the development of this application is very active and it seems to get better with each release, and they are definitely frequent.  Seamless Mode has it&#8217;s own limitations too.  For example, the Guest OS (the virtual appliance machine) doesn&#8217;t span across multiple monitors, or at least it didn&#8217;t the last time I tried.  Also, you have to get used to how window focus works, meaning that when you click on a guest OS window, all visible elements of the guest OS butt in front of the host OS windows, though of course, the reverse is not true.  Then in order to access the desktop of the guest OS, you have to rely on browsing tools.  All are mainly usability concerns that you quickly acclimatize too.  Still though, even with the occasional rough spots, VirtualBox is a shining example of greatness in free (and largely Open Source) software.</p>
<p>You can download VirtualBox here &#8211; <a href="http://www.virtualbox.org/wiki/Downloads">http://www.virtualbox.org/wiki/Downloads</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/computing/i-love-virtualbox/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hello (Cruel) World!</title>
		<link>http://jasonpbrown.com/journal/hello-world/</link>
		<comments>http://jasonpbrown.com/journal/hello-world/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 05:57:20 +0000</pubDate>
		<dc:creator>Jason P. Brown</dc:creator>
				<category><![CDATA[My Journal]]></category>

		<guid isPermaLink="false">http://jasonpbrown.com/?p=1</guid>
		<description><![CDATA[My name is Jason, and this is my online journal, or &#8216;blog, or vanity site, or whatever.  Thanks for stopping by.
The place is going to change radically so don&#8217;t get used to anything just yet.   This will be one of my little digital playgrounds, specifically a place for me to  flex my web-muscles against an [...]]]></description>
			<content:encoded><![CDATA[<p>My name is Jason, and this is my online journal, or &#8216;blog, or vanity site, or whatever.  Thanks for stopping by.</p>
<p><span id="more-1"></span>The place is going to change radically so don&#8217;t get used to anything just yet.   This will be one of my little digital playgrounds, specifically a place for me to  flex my web-muscles against an otherwise stock <a href="http://www.wordpress.org">Wordpress</a> installation.  It should be fun, but if I were you I would check to make sure the chair is still there before you sit down.  You wouldn&#8217;t want the whole internet laughing at you because you fell on your <a href="http://www.urbandictionary.com/define.php?term=heiney">heiney</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jasonpbrown.com/journal/hello-world/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.534 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-10 01:22:46 -->
