<?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 Fox</title>
	<atom:link href="http://www.jasonfox.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonfox.com</link>
	<description>programming, products, and pontifications...</description>
	<lastBuildDate>Thu, 17 Jun 2010 02:29:42 +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>24 Hours at the `Ring in 19,500 Frames</title>
		<link>http://www.jasonfox.com/2010/06/24-hours-at-the-ring-in-19500-frames/</link>
		<comments>http://www.jasonfox.com/2010/06/24-hours-at-the-ring-in-19500-frames/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 02:02:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pontifications]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[racing]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=245</guid>
		<description><![CDATA[Tim Hahne reduces the 24 hour endurance race at the Nurburgring into just 19,500 frames.  13 beautiful minutes of Porsches, Ferraris, Audis, Aston Martins, BMWs and lots of German men wearing massive headphones.

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stereoscreen.de/">Tim Hahne</a> reduces the 24 hour endurance race at the <a href="http://www.nuerburgring.de/en.html">Nurburgring</a> into just 19,500 frames.  13 beautiful minutes of Porsches, Ferraris, Audis, Aston Martins, BMWs and lots of German men wearing massive headphones.<br/><br />
<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11932030&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=11932030&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2010/06/24-hours-at-the-ring-in-19500-frames/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing MySQL with the InnoDB Plugin</title>
		<link>http://www.jasonfox.com/2010/03/installing-mysql-with-the-innodb-plugin/</link>
		<comments>http://www.jasonfox.com/2010/03/installing-mysql-with-the-innodb-plugin/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 23:48:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[innodb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=220</guid>
		<description><![CDATA[

I found after installing MySQL 5.1 that the “fast index creation”  feature is not utilized by the default InnoDB storage engine that comes  with MySQL 5.1.  This is the main reason why I went through the trouble  of installing  MySQL 5.1 in the first place.  :-/  However, have [...]]]></description>
			<content:encoded><![CDATA[<div id="OriginalPost">
<div>
<p>I found after installing MySQL 5.1 that the “fast index creation”  feature is not utilized by the default InnoDB storage engine that comes  with MySQL 5.1.  This is the main reason why I went through the trouble  of <a href="http://www.jasonfox.com/2010/03/installiing-and-running-mysql-5-1-next-to-5-0/">installing  MySQL 5.1 in the first place</a>.  :-/  However, have no fear, the <a href="http://www.innodb.com/products/innodb_plugin/features">InnoDB  plugin</a> is here!  (ok, that was lame, anyways…)</p>
<p>The InnoDB plugin is a replacement InnoDB storage engine developed  with the help of Sun, Google and Percona.  It supposedly provides better  overall performance compared with the default InnoDB storage engine  that comes with MySQL and it adds a few new features that I want such as  “fast index creation.”</p>
<p>If you’d like to try out the InnoDB plugin you’ll have to recompile  MySQL as a pre-compiled binary drop-in is not provided yet for OSX.  So, here are the steps for compiling and  installing MySQL 5.1 with the InnoDB plugin while maintaining a working  MySQL 5.0 installation on your computer.</p>
<ol>
<li>Download the <a href="http://dev.mysql.com/downloads/mysql/5.1.html#source">MySQL 5.1  source distribution</a> (v.5.1.43 for me; Change Platform to: Source  Code; Scroll down to the last distribution: Generic Linux (Architecture  Independent))</li>
<li>Download the <a href="http://www.innodb.com/products/innodb_plugin/download/">InnoDB  plugin source distribution</a> (v.1.0.6 for me)</li>
<li>Create a new install directory for MySQL 5.1: <code>sudo mkdir  /usr/local/mysql-5.1.43</code></li>
<li>Change ownership of the install directory to the mysql user: <code>sudo  chown -R mysql /usr/local/mysql-5.1.43</code></li>
<li>Extract the MySQL source: <code>tar -zxf mysql-5.1.43.tar.gz</code></li>
<li>Extract the InnoDB plugin source: <code>tar -zxf  innodb-1.0.6.tar.gz</code></li>
<li>Change into the MySQL source directory for storage engines: <code>cd  mysql-5.1.37/storage</code></li>
<li>Remove the version of the InnoDB plugin that MySQL comes with: <code>rm  -fr innobase</code></li>
<li>Replace the InnoDB plugin with the one you downloaded: <code>mv  innodb-1.0.6 innobase</code></li>
<li>Change into the MySQL source root: <code>cd ..</code></li>
<li>Create the make file: <code>./configure  --prefix=/usr/local/mysql-5.1.43 --with-extra-charsets=complex  --enable-thread-safe-client --enable-local-infile --enable-shared  --with-plugins=innobase --without-plugin-innodb_plugin  --with-federated-storage-engine</code>; note, I’m also including the <a href="http://dev.mysql.com/doc/refman/5.1/en/federated-storage-engine.html">Federated  Storage Engine</a> here in case you find a use for it in the future; <strong>NOTE</strong>: You will receive the following  warning, however, <a href="http://bugs.mysql.com/bug.php?id=42872">IT DID WORK</a>, so just ignore it:
<pre><code>configure: WARNING: unrecognized options: --without-plugin-innodb_plugin, --with-federated-storage-engine</code></pre>
</li>
<li>Compile MySQL: <code>make</code>; takes about 10 minutes or so</li>
<li>Install MySQL: <code>sudo make install</code></li>
<li>Change into your install directory: <code>cd  /usr/local/mysql-5.1.43</code></li>
<li>Create the MySQL database: <code>sudo ./bin/mysql_install_db  --user=mysql</code></li>
<li>Change ownership of the <code>var</code> directory to the mysql  user: <code>sudo chown -R mysql ./var</code></li>
</ol>
<h2>For more information see…</h2>
<p>If you get stuck you can check out the following resources that I  used to complete this process:</p>
<ul>
<li><a href="http://www.innodb.com/doc/innodb_plugin-1.0/innodb-plugin-installation.html#innodb-plugin-installation-source-unix">InnoDB  Plugin Installation Guide</a></li>
<li><a href="http://hivelogic.com/articles/compiling-mysql-on-snow-leopard/">Installing  MySQL on OSX Snow Leopard</a> or the <a href="http://hivelogic.com/articles/installing-mysql-on-mac-os-x/">non-Snow  Leopard version</a></li>
<li><a href="http://dev.mysql.com/doc/refman/5.1/en/installing-source.html">MySQL  5.1 Installation Guide</a></li>
</ul>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2010/03/installing-mysql-with-the-innodb-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Apache2 with SSL Support on Mac OS X</title>
		<link>http://www.jasonfox.com/2010/03/installing-apache2-with-ssl-support-on-mac-os-x/</link>
		<comments>http://www.jasonfox.com/2010/03/installing-apache2-with-ssl-support-on-mac-os-x/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 23:58:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[rubyonrails]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=227</guid>
		<description><![CDATA[Here are the steps for installing Apache2 with SSL  support on your local development machine.  Several of our applications  require HTTPS for certain actions and I’ve  been bitten in the past by not testing this in development.  So, here&#8217;s how to get Apache up and running with SSL.
Compiling and Installing [...]]]></description>
			<content:encoded><![CDATA[<p>Here are the steps for installing Apache2 with SSL  support on your local development machine.  Several of our applications  require HTTPS for certain actions and I’ve  been bitten in the past by not testing this in development.  So, here&#8217;s how to get Apache up and running with SSL.</p>
<h2>Compiling and Installing Apache</h2>
<ol>
<li>Download the latest source distribution (v2.2.15 for me) from: <a href="http://httpd.apache.org/">http://httpd.apache.org</a></li>
<li>Extract the source: <code>tar -xvf httpd-2.2.15.tar.gz</code></li>
<li>Create an install directory (I put it in <code>/usr/local</code>):  <code>sudo makedir /usr/local/apache2</code></li>
<li>Configure the makefile with the following options: <code>./configure  --prefix=/usr/local/apache2 --enable-ssl --enable-setenvif  --enable-proxy --enable-headers</code></li>
<li>Compile the source code: <code>make</code></li>
<li>Install apache: <code>sudo make install</code></li>
<li>Create your self-signed SSL keys by  following this tutorial: <a href="http://developer.apple.com/internet/serverside/modssl.html">http://developer.apple.com/internet/serverside/modssl.html</a>
<ul>
<li>Scroll down to the Configuring SSL  section and start from there</li>
<li>You will need to <a href="http://www.modssl.org/">download mod_ssl</a> to get the sign.sh script mentioned in the tutorial but that’s all you  need it for.  You’ll notice the mod_ssl site says it’s only for Apache  1.3.X.  That is because Apache2 has built in SSL  support which we enabled in the makefile configuration above so mod_ssl  is no longer needed.</li>
</ul>
</li>
<li>Edit your httpd.conf file: <code>sudo vi  /usr/local/apache2/conf/httpd.conf</code></li>
<li>Add the following configuration to the bottom of the file to proxy  all HTTP and HTTPS  requests to port 3000, i.e., Rails:
<ul>
<li>This assumes Rails is running on port 3000 on your machine</li>
<li>This assumes you put the SSL keys where  the tutorial told you to</li>
<li>The last  tag  might already be in your <code>httpd.conf</code> file, if so, no need to  repeat it here
<pre><code># Apache needs to know you want to accept connections over HTTPS
Listen 443

SSLCertificateFile /etc/httpd/ssl.key/server.crt
SSLCertificateKeyFile /etc/httpd/ssl.key/server.key

# Below is optional, but was helpful to me in debugging this setup
CustomLog logs/ssl_request_log  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 

&lt;VirtualHost *:80&gt;
    ServerName localhost
    ServerAlias 127.0.0.1

    ProxyPass / &lt;a href="http://localhost:3000/"&gt;http://localhost:3000/&lt;/a&gt;
    ProxyPassReverse / &lt;a href="http://localhost:3000"&gt;http://localhost:3000&lt;/a&gt;
    ProxyPreserveHost on

&lt;VirtualHost *:443&gt;
    SSLEngine On
    ServerName localhost
    ServerAlias 127.0.0.1

    ProxyPass / &lt;a href="http://localhost:3000/"&gt;http://localhost:3000/&lt;/a&gt;
    ProxyPassReverse / &lt;a href="http://localhost:3000"&gt;http://localhost:3000&lt;/a&gt;
    ProxyPreserveHost on
    RequestHeader set X_FORWARDED_PROTO 'https'

&lt;ifmodule ssl_module&gt;
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin
&lt;/ifmodule&gt;
</code></pre>
</li>
</ul>
</li>
</ol>
<h2>Auto-starting Apache</h2>
<p>If you’d like to have apache start automatically whenever your  computer starts do the following:</p>
<ol>
<li>Create a new plist file for apache with a unique name: <code>sudo  vi /Library/LaunchDaemons/org.apache.httpd</code></li>
<li>Put the following in the file (assuming you installed apache in <code>/usr/local/apache2</code>):
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
    &lt;dict&gt;
        &lt;key&gt;KeepAlive&lt;/key&gt;
        &lt;true /&gt;
        &lt;key&gt;Label&lt;/key&gt;
        &lt;string&gt;org.apache.httpd&lt;/string&gt;
        &lt;key&gt;ProgramArguments&lt;/key&gt;
        &lt;array&gt;
            &lt;string&gt;/usr/local/apache2/bin/apachectl&lt;/string&gt;
            &lt;string&gt;start&lt;/string&gt;
        &lt;/array&gt;
        &lt;key&gt;RunAtLoad&lt;/key&gt;
        &lt;true /&gt;
        &lt;key&gt;UserName&lt;/key&gt;
        &lt;string&gt;root&lt;/string&gt;
        &lt;key&gt;WorkingDirectory&lt;/key&gt;
        &lt;string&gt;/usr/local/apache2&lt;/string&gt;
    &lt;/dict&gt;
&lt;/plist&gt;
</code></pre>
</li>
<li>Test it out with launchd: <code>sudo launchctl load -w  /Library/LaunchDaemons/org.apache.httpd</code>; You should see several  instances of <code>httpd</code> running if you do a: <code>ps aux | grep  httpd</code></li>
</ol>
<h2>Testing it out</h2>
<ol>
<li>Fire up Rails on whatever port you are forwarding your HTTP/HTTPS requests to</li>
<li>Request an action with HTTP</li>
<li>Request an action with HTTPS</li>
</ol>
<h2>Possible Problems</h2>
<p>I encountered the following cryptic error in FireFox when I was testing  out an Apache install on a second dev box:</p>
<p><code>SEC_ERROR_REUSED_ISSUER_AND_SERIAL</code></p>
<p>I found out by <a href="http://support.mozilla.com/tiki-view_forum_thread.php?comments_parentId=1519&amp;forumId=1">reading  through some forums</a> that each SSL  certificate needs to have a unique serial number.  Since I had followed  the above procedure to install Apache and SSL  on both my laptop and the second dev box I already had a certificate with the  same serial number stored in my browser (for my local machine) as the  one on the second dev box. If you follow the above process the serial number  of your certificate will be <code>01</code>.  So to fix this do the  following on your new certificate (for me it was the one on the dev box):</p>
<pre><code>sudo openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 02 -out server.crt
</code></pre>
<p>This simply assigns <code>02</code> to the second certificate and keeps  FireFox happy.  You probably will not encounter this problem unless you  are testing SSL on multiple machines like I  was but I figured I’d mention it anyways.  Note, you can see the serial  number of a certificate in FireFox by going to:</p>
<p><code>Firefox &gt; Preferences &gt; Advanced &gt; View Certificates (button)<br />
</code></p>
<p>Then double click on a certificate of interest.  Also note that Chrome  did not complain about this but FireFox won’t even let you visit a site  with a duplicate serial number.</p>
<h2>If you get stuck…</h2>
<p>Try one of the following resources that I used to get this up and  running:</p>
<ul>
<li><a href="http://www.subelsky.com/2007/11/testing-rails-ssl-requirements-on-your.html">Testing  SSL Requirements on Rails</a></li>
<li><a href="http://developer.apple.com/internet/serverside/modssl.html">Using  mod_ssl on Mac OS X</a></li>
<li><a href="http://support.mozilla.com/tiki-view_forum_thread.php?comments_parentId=1519&amp;forumId=1">Same  Serial Number of Certificate Error</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2010/03/installing-apache2-with-ssl-support-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installiing and Running MySQL 5.1 and MySQL 5.0 simultaneously on Mac OS X</title>
		<link>http://www.jasonfox.com/2010/03/installiing-and-running-mysql-5-1-next-to-5-0/</link>
		<comments>http://www.jasonfox.com/2010/03/installiing-and-running-mysql-5-1-next-to-5-0/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 23:51:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=223</guid>
		<description><![CDATA[

I am writing a few new applications and decided to upgrade to MySQL 5.1 from MySQL 5.0.  However, I have several legacy applications that still require MySQL 5.0.  So, I set out to get them both up and running side-by-side so I could forge a new path forward to 5.1 while not abandoning my 5.0 [...]]]></description>
			<content:encoded><![CDATA[<div id="OriginalPost">
<div>
<p>I am writing a few new applications and decided to upgrade to MySQL 5.1 from MySQL 5.0.  However, I have several legacy applications that still require MySQL 5.0.  So, I set out to get them both up and running side-by-side so I could forge a new path forward to 5.1 while not abandoning my 5.0 apps.</p>
<h2>Installing MySQL 5.1</h2>
<ol>
<li>Download the <strong>source</strong> distribution of the latest 5.1  (for me it was 5.1.42)</li>
<li>Decompress it and extract it into a directory</li>
<li>Create a new home for the 5.1 files, I put it in <code><strong>/usr/local/mysql-5.1.42</strong></code></li>
<li>Next <code>cd</code> into the directory where you extracted the  files</li>
<li>Run the following command substituting your install directory  created in step 3 above: <code>./configure --prefix=<strong>/usr/local/mysql-5.1.42</strong> --with-extra-charsets=complex --enable-thread-safe-client  --enable-local-infile --enable-shared --with-plugins=innobase</code></li>
<li>Compile the code by running: <code>make</code>; this will take a  few minutes (10ish?)</li>
<li>Install into your chosen directory with: <code>sudo make install</code></li>
<li>Next <code>cd</code> into your install directory: <code>cd <strong>/usr/local/mysql-5.1.42</strong></code></li>
<li>Create the mysql database with: <code>sudo ./bin/mysql_install_db  --user=mysql</code></li>
<li>Change ownership of the var directory (this is the data  directory): <code>sudo chown -R mysql ./var</code></li>
<li>Change ownership of the install directory: <code>sudo chown -R  mysql <strong>/usr/local/mysql-5.1.42</strong></code></li>
<li>Create a socket file in your install directory: <code>sudo -u  mysql touch mysql.sock</code>; mysql may create this itself on start-up,  but, I created it ahead of time</li>
<li>Start the server: <code>sudo -u mysql ./libexec/mysqld --basedir=<strong>/usr/local/mysql-5.1.42</strong> --port=6666 --socket=<strong>/usr/local/mysql-5.1.42/mysql.sock</strong> --user=mysql</code></li>
</ol>
<h2>Running MySQL 5.1 and 5.0</h2>
<ol>
<li>Edit your <code>my.cnf</code> file and explicitly add: <code>socket=/tmp/mysql.socket</code>;  if you do not do this when you start the 5.1 server the socket will be  deleted</li>
<li>Create a new <code>my.cnf</code> file in your 5.1 installation  root; for me: */usr/local/mysql-5.1.42/; your <code>my.cnf</code> file  should look like this:
<pre><code>    [mysqld]
    basedir=/usr/local/mysql-5.1.42/
    port=6666
    socket=/tmp/mysql.5.1.socket
    user=mysql
</code></pre>
</li>
<li>Change ownership of the <code>my.cnf</code> file to the <code>mysql</code> user: <code>sudo chown -R mysql my.cnf</code></li>
<li>Create a plist file for <code>launchd</code> called something  like: <code>com.mysql.mysqld.5.1.plist</code> in <code>/Library/LaunchDaemons</code>;  your plist file should look like this:
<pre><code>    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
    &lt;plist version="1.0"&gt;
        &lt;dict&gt;
            &lt;key&gt;KeepAlive&lt;/key&gt;
            &lt;true /&gt;
            &lt;key&gt;Label&lt;/key&gt;
            &lt;string&gt;com.mysql.mysqld.5.1&lt;/string&gt;
            &lt;key&gt;ProgramArguments&lt;/key&gt;
            &lt;array&gt;
                &lt;string&gt;/usr/local/mysql-5.1.42/bin/mysqld_safe&lt;/string&gt;
                &lt;string&gt;--defaults-file=/usr/local/mysql-5.1.42/my.cnf&lt;/string&gt;
            &lt;/array&gt;
            &lt;key&gt;RunAtLoad&lt;/key&gt;
            &lt;true /&gt;
            &lt;key&gt;UserName&lt;/key&gt;
            &lt;string&gt;mysql&lt;/string&gt;
            &lt;key&gt;WorkingDirectory&lt;/key&gt;
            &lt;string&gt;/usr/local/mysql-5.1.42&lt;/string&gt;
        &lt;/dict&gt;
    &lt;/plist&gt;
</code></pre>
</li>
<li>Change ownership of the plist file to root like so: <code>sudo  chown root /Library/LaunchDaemons/com.mysql.mysqld.5.1.plist</code></li>
<li>Test it out by launching mysql: <code>sudo launchctl load -w  /Library/LaunchDaemons/com.mysql.mysqld.5.1.plist</code>; The next time  you start up both MySQL 5.0 and 5.1 should be started up.  Check the <code>/tmp</code> directory after start-up to ensure both sockets were created  successfully.</li>
</ol>
<h2>A few notes about this process</h2>
<ul>
<li>When you install from source the layout of the installation is  different than when you install from the binary distribution, i.e., the  data direectory is <code>var</code> not <code>data</code> and the server  binary is in <code>libexec</code> not <code>bin</code>, etc. For more  information check out <a href="http://dev.mysql.com/doc/refman/5.1/en/installation-layouts.html">this  article</a>.</li>
<li>When starting a second instance of mysqld you must specify  different values for the following options: <code>port</code>, <code>socket</code>,  <code>pid-file</code>, <code>tmpdir</code>, <code>datadir</code>.   However, if you specify the <code>basedir</code> you only need to  explicitly set values for <code>socket</code> and <code>port</code> as  we did in the last step above.  For more information check out <a href="http://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html">this  article</a>.</li>
<li>When you start the mysql client you must specify the socket and  port like so: <code>/usr/local/mysql-5.1.42/bin/mysql -P 6666 -S  /usr/local/mysql-5.1.42/mysql.sock -u root</code>; Alternatively you can  create a hidden <code>.my.cnf</code> file in your home directory and  specify which server should be connected to by default when you run the  mysql client.  Your <code>.my.cnf</code> file should look like this:
<pre><code>    [client]
    port=6666
    socket=/tmp/mysql.5.1.socket
</code></pre>
</li>
</ul>
<h2><strong>Working with Rails</strong></h2>
<div>Now that you have two MySQL  servers running  you need to tell Rails which one you want to use in a  more explicit  fashion.  Here’s an example from my <code>database.yml</code> file:</div>
<pre><code>    # Main database connection for the media_service;
    # Uses MySQL 5.1
    development:
      adapter: mysql
      encoding: utf8
      database: my_development
      username: foo
      password: bar
      socket: /tmp/mysql.5.1.socket
      port: 6666</code></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2010/03/installiing-and-running-mysql-5-1-next-to-5-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The iPad is the Wii of Computing</title>
		<link>http://www.jasonfox.com/2010/01/the-ipad-is-the-wii-of-computing/</link>
		<comments>http://www.jasonfox.com/2010/01/the-ipad-is-the-wii-of-computing/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 17:42:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pontifications]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[litl]]></category>
		<category><![CDATA[tablet]]></category>
		<category><![CDATA[wii]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=191</guid>
		<description><![CDATA[


I think the geeks have it wrong.  The iPad is a revolutionary device and a game changing one at that.  I believe that the iPad is to computing what the Nintendo Wii is to video gaming.  While it may not have the most amazing graphics, the most powerful CPU (though it just might), the most [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-217" style="border: 0pt none;" title="the_ipad_is_the_wii_of_computing" src="http://www.jasonfox.com/wp-content/uploads/2010/01/the_ipad_is_the_wii_of_computing.png" alt="the_ipad_is_the_wii_of_computing" width="400" height="207" /></p>
<p style="text-align: center;">
<p style="text-align: center;">
<p>I think <a href="http://i.gizmodo.com/5458382/8-things-that-suck-about-the-ipad">the geeks</a> have it wrong.  The <a href="http://apple.com/ipad">iPad</a> <em>is</em> a revolutionary device and a game changing one at that.  I believe that the iPad is to computing what the Nintendo Wii is to video gaming.  While it may not have the most amazing graphics, the most powerful CPU (though <a href="http://daringfireball.net/2010/01/ipad_big_picture">it just might</a>), the most storage or even all of the features that we want such as multitasking, it does not matter.  I repeat, it does not matter, just as it did not matter for the Wii.</p>
<p>The Nintendo Wii <a href="http://kotaku.com/205086/miyamoto-on-the-wii-the-hardware-is-basically-a-gc">is really just a GameCube</a> in different packaging just like the iPad is just an iPod Touch in bigger packaging.   The &#8220;magic&#8221; of the Wii is not it&#8217;s amazing technical specifications like say the Sony Playation 3.  No, the real magic of the Wii is in its ability to change the way that the game is played; literally and figuratively.</p>
<p>The Wii is appealing because anyone can play the games, old, young, veteran video gamers or newcomers and have fun playing them.  The Wii removes the requirement of being a video gamer to play video games.  There&#8217;s no need to master impossible sequences of key presses just to be able to challenge your friend to a game of tennis.  Instead you just pick up the controller and play; it requires no instruction and therefore lowers the barriers to video gaming.  The iPad does the same thing for computing.</p>
<p>The iPad is the first &#8220;computer&#8221; that I would consider buying my mom (actually the <a href="http://litl.com/">Litl Webook</a> was the first, however, it is now surely doomed).  The trick of the iPad is that it removes the &#8220;computer-y&#8221; things from the computer.  This one aspect of the iPad is the key thing that absolutely makes it a revolutionary device irrespective of it&#8217;s technical specifications or naive feature set.  The iPad allows anyone young, old, tech savvy or not to be able to intuitively use a computer for the first time in history.  This to me is why the iPad is a game changer and is one reason why the iPad <a href="http://www.mac-forums.com/forums/apple-rumors-reports/188689-apple-ipad-flop.html">will not be a flop</a>.</p>
<p>The iPad is a harbinger of things to come in computing, specifically in human-computer interaction models and I, for one, welcome it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2010/01/the-ipad-is-the-wii-of-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireless Audio Streaming with Apple&#8217;s Airport Express, Airfoil and VLC</title>
		<link>http://www.jasonfox.com/2009/11/wireless-audio-streaming-with-apples-airport-express-airfoil-and-vlc/</link>
		<comments>http://www.jasonfox.com/2009/11/wireless-audio-streaming-with-apples-airport-express-airfoil-and-vlc/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 05:16:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[airportexpress]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[streaming]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[vlc]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=185</guid>
		<description><![CDATA[Streaming audio with Apple&#8217;s Airport express is seamless and simple.  You plug in the Airport Express into the wall, plug in the audio cables (NOT INCLUDED) to your stereo and off you go.  However, if you want to watch movies on your computer and enjoy the same wireless audio you get with iTunes, things get [...]]]></description>
			<content:encoded><![CDATA[<p>Streaming audio with Apple&#8217;s Airport express is seamless and simple.  You plug in the Airport Express into the wall, plug in the audio cables (NOT INCLUDED) to your stereo and off you go.  However, if you want to watch movies on your computer and enjoy the same wireless audio you get with iTunes, things get a bit more complicated.</p>
<p>First off, Apple&#8217;s Airtunes protocol <a href="http://rogueamoeba.com/support/knowledgebase/?showArticle=AirfoilVideoPlayer">apparently</a> has a built in 2-ish second delay before it starts playing the audio you&#8217;ve summoned up.  That&#8217;s not a problem if you&#8217;re listening to music, but, if your audio is paired with some video the result is unsycnhronized viewing.  More importantly, though, is the fact that iTunes only let&#8217;s you stream music to the Airport Express.  What about that pirated copy of Paranormal Activity you just downloaded from bit torrent?  Fear not, there is a solution.</p>
<p>First you need to get a nice little app called <a href="http://rogueamoeba.com/airfoil/mac/">Airfoil</a>.  Airfoil allows you to stream ANY audio from any application to your Airport Express.  Wow, perfect!  Well, hold on a second, let&#8217;s return to that little issue with Apple&#8217;s Airtunes protocol before you plop down your $25 for a license (you were going to BUY a license, weren&#8217;t you?).</p>
<p>The problem again is that any audio you play over the air with your Airport Express will be delayed about 2 seconds.  This means that your audio will lag behind your video.  Booooo&#8230; Ok, so, let&#8217;s just delay the video a bit so that the audio has time to catch up!  Simple solution, right?  Yes and no.</p>
<p>Desynchronization of audio and video will work in video players like VLC.  VLC makes desynchronization of audio and vidoe really, really simple.  In fact, you can change the sychronization settings on the fly by pressing the &#8220;f&#8221; and &#8220;g&#8221; keys.  I found <a href="http://www.j4mie.org/2006/05/03/using-airfoil-with-vlc/">a post</a> that explains it all.  (Note that his instructions are for an older version of VLC.  However, the instructions are the same except that in the new one you select the &#8220;All&#8221; radio button in the bottom left hand corner of the preferences pane instead of the &#8220;Advanced&#8221; checkbox to access VLC&#8217;s full array of settings.  Also I found -2100 to be a better delay for me.)</p>
<p>Unfortunately there is no solution that I know of for synchronizing internet video like Hulu.com with the delayed audio of the Airport Express.  That&#8217;s a bit of a let down as Hulu.com is really the only way I watch &#8220;television&#8221; these days (It&#8217;s not exactly television if I watch it on my computer, now is it? I&#8217;m really &#8220;watching computer&#8221;.  Oh what will we do <a href="http://www.paulgraham.com/publishing.html">when the mediums we&#8217;re used to are no more</a>?  How will we know what to call things anymore? Will a newspaper still be called a newspaper if we read it on Apple tablet or will it be a newstablet?)  If anyone knows of a solution please let me know.</p>
<p>In conclusion, a combination of Apple&#8217;s Airport Express, Airfoil and VLC allow you to cut the cords and enjoy audio on your stereo wirelessly, however, it&#8217;s not without faults and frustrations and some big exceptions (read: no Hulu.com). Oh, I should mention that Airfoil does ship with its own video player that handles the audio desyncrhonization for you.  I however was unable to get it to play several of my videos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2009/11/wireless-audio-streaming-with-apples-airport-express-airfoil-and-vlc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>killall Dock &#8211; the most awesome command in the world</title>
		<link>http://www.jasonfox.com/2009/05/killall-dock-the-most-awesome-command-in-the-world/</link>
		<comments>http://www.jasonfox.com/2009/05/killall-dock-the-most-awesome-command-in-the-world/#comments</comments>
		<pubDate>Mon, 18 May 2009 20:58:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[expose]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=178</guid>
		<description><![CDATA[Ever have Expose freeze up on you? Command-TAB stops working, Spaces stops working, the Dock stops working, show desktop stops working, show windows stops working; you&#8217;re trapped!  Well, if you happen to have a terminal window open or can launch one, fear not!  Simply issue the following command (make sure to use a capital &#8216;D&#8217;) [...]]]></description>
			<content:encoded><![CDATA[<p>Ever have Expose freeze up on you? Command-TAB stops working, Spaces stops working, the Dock stops working, show desktop stops working, show windows stops working; you&#8217;re trapped!  Well, if you happen to have a terminal window open or can launch one, fear not!  Simply issue the following command (make sure to use a capital &#8216;D&#8217;) and you&#8217;re golden.  No restart required!</p>
<pre>$ killall Dock</pre>
<p>Share and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2009/05/killall-dock-the-most-awesome-command-in-the-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backgroundjob (Bj) Won&#8217;t Start</title>
		<link>http://www.jasonfox.com/2009/05/backgroundjob-bj-wont-start/</link>
		<comments>http://www.jasonfox.com/2009/05/backgroundjob-bj-wont-start/#comments</comments>
		<pubDate>Fri, 15 May 2009 13:46:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[backgroundjob]]></category>
		<category><![CDATA[bj]]></category>
		<category><![CDATA[rubyonrails]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=171</guid>
		<description><![CDATA[Recently I had a problem with Bj where it would not start up.  Nothing was written to the backgroundjob log or Rails log and no exception was being thrown.  To make the problem even stranger, Bj would start-up just fine in development but not in production but worked just fine in production from script/console.  After [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had a problem with <a href="http://agilewebdevelopment.com/plugins/bj">Bj</a> where it would not start up.  Nothing was written to the backgroundjob log or Rails log and no exception was being thrown.  To make the problem even stranger, Bj would start-up just fine in development but not in production but worked just fine in production from script/console.  After digging into the Bj code and adding some debug statements I found the problem.</p>
<pre># database.yml
development:
  adapter: mysql
  database: my_development
  username: me
  password: password
  host: localhost
  port: 3306

test:
  adapter: mysql
  database: my_test
  username: me
  password: password
  host: localhost
  port: 3306

production:
  development</pre>
<p>Bj was getting an ActiveRecord::ConnectionNotEstablished exception but was swallowing it.  The solution was to explicitly define the production database connection in database.yml.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2009/05/backgroundjob-bj-wont-start/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disk Utility: “File system formatter failed.”</title>
		<link>http://www.jasonfox.com/2009/05/osx-error-message-%e2%80%9cfile-system-formatter-failed%e2%80%9d/</link>
		<comments>http://www.jasonfox.com/2009/05/osx-error-message-%e2%80%9cfile-system-formatter-failed%e2%80%9d/#comments</comments>
		<pubDate>Tue, 12 May 2009 15:10:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Pontifications]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=158</guid>
		<description><![CDATA[If you receive the &#8220;File system formatter failed&#8221; error message while trying to partition a large hard drive using Disk Utility in OSX you need to change the partition type to GUID.  Click the Options&#8230; button at the bottom of the partition list and select the GUID Partition Table:

]]></description>
			<content:encoded><![CDATA[<p>If you receive the &#8220;File system formatter failed&#8221; error message while trying to partition a large hard drive using Disk Utility in OSX you need to change the partition type to GUID.  Click the<strong> Options&#8230;</strong> button at the bottom of the partition list and select the <strong>GUID Partition Table</strong>:</p>
<p><img class="alignnone size-full wp-image-165" style="border: 0pt none;" title="screen-capture-12" src="http://www.jasonfox.com/wp-content/uploads/2009/05/screen-capture-12.png" alt="screen-capture-12" width="401" height="347" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2009/05/osx-error-message-%e2%80%9cfile-system-formatter-failed%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Iomega Prestiege 1TB Review &#8211; First Impressions</title>
		<link>http://www.jasonfox.com/2009/05/iomega-prestiege/</link>
		<comments>http://www.jasonfox.com/2009/05/iomega-prestiege/#comments</comments>
		<pubDate>Tue, 12 May 2009 14:05:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.jasonfox.com/?p=149</guid>
		<description><![CDATA[
Just got my two Iomega Prestiege 1TB hard drives from Amazon  ($104/each) to support my new backup strategy (more on that later).  First impressions: PROS: Very quiet, very solid feeling construction, CONS: Activity light placement forces you to put it to the left of you, the color is not at all like the picture; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-150" style="border: 0pt none;" title="iomega_prestiege" src="http://www.jasonfox.com/wp-content/uploads/2009/05/iomega_prestiege.jpg" alt="iomega_prestiege" width="280" height="280" /></p>
<p>Just got my two <a href="http://www.amazon.com/Iomega-Prestige-Desktop-External-34275/dp/B001D7REJ4/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1242137631&amp;sr=8-1">Iomega Prestiege 1TB</a> hard drives from Amazon  ($104/each) to support my new backup strategy (more on that later).  First impressions: PROS: Very quiet, very solid feeling construction, CONS: Activity light placement forces you to put it to the left of you, the color is not at all like the picture; the drive is more of a gun metal, putty grey than a shiny silver aluminum like the MacBook Pro.  Oh well, all I ask is that it will last longer than my Western Digital MyBook.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonfox.com/2009/05/iomega-prestiege/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
