<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Travis Berry</title>
	
	<link>http://www.travisberry.com</link>
	<description>Portfolio and Blog of Travis Berry</description>
	<lastBuildDate>Tue, 22 Jun 2010 15:11:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TravisBerry" /><feedburner:info uri="travisberry" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>Portfolio and Blog of Travis Berry</itunes:subtitle><geo:lat>39.731286</geo:lat><geo:long>-104.98306</geo:long><feedburner:emailServiceId>TravisBerry</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Create A Ghetto, But Functional, Search Function For CakePHP</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/6gz-rgurAww/</link>
		<comments>http://www.travisberry.com/2010/06/create-a-ghetto-but-functional-search-function-for-cakephp/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 02:34:22 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=1012</guid>
		<description><![CDATA[
Recently I needed to add a search function for a CakePHP application I am building. After googling the bejeezus out of it, I never found a solution that worked. Some required the use of a search table, which then needed to index all of your content, other&#8217;s just didn&#8217;t work at all.
After much hacking around [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://store.steampowered.com/app/400/" target="blank"><img src="http://www.travisberry.com/wp-content/uploads/2010/06/portalcake2.jpg" alt="" title="portalcake2" width="640" height="280" class="alignnone size-full wp-image-1015" /></a><br />
Recently I needed to add a search function for a <a href="http://cakephp.org/" target="blank">CakePHP</a> application I am building. After googling the bejeezus out of it, I never found a solution that worked. Some required the use of a search table, which then needed to index all of your content, other&#8217;s just didn&#8217;t work at all.</p>
<p>After much hacking around I came up with a solution that works for me. This may or may not solve your particular problem, but it may help get you started in the right direction.<span id="more-1012"></span></p>
<p>I&#8217;ll be using a fairly standard User MVC for this demo.</p>
<p>First, I started in the view. Instead of using the built in cakephp form helpers, I hand coded my inputs. You could easily use the form helpers though. Just make sure to set the value on certain inputs.</p>
<p><code>&lt;div id="search"&gt;<br />
    &lt;form id="orderform" action="&lt;?php echo $html-&gt;url('/users/search'); ?&gt;" method="post" enctype="multipart/form-data"&gt;<br />
	&lt;label for="searchuser"&gt;Search Users:&lt;/label&gt;&lt;input type="text" name="searchuser" /&gt;<br />
	Search By:<br />
&lt;input type="radio" name="searchtype" value="User.id"  checked&gt; User ID<br />
&lt;input type="radio" name="searchtype" value="User.email"  checked&gt; User Email<br />
&lt;input type="radio" name="searchtype" value="Entity.name"&gt; Entity Name<br />
&lt;?php<br />
    echo $form-&gt;end('Search');<br />
?&gt; &lt;/div&gt;</code></p>
<p>The code is fairly straight forward. In the form tag I declared which action in the controller to use. The input tags are really straight forward. The only thing to note is in the search type radio buttons, the value is set to the Model.fieldname. This is important later on. But make sure to set them to the models you intend to search.</p>
<p>Now in the controller, it&#8217;s time to add the search action.</p>
<p>       <code>function search() {<br />
	  $searchtype = $_POST['searchtype'];<br />
	  $value = $_POST['searchuser'];<br />
	$results = $this-&gt;User-&gt;find('all', array('fields' =&gt; array('User.id', 'User.email', 'Entity.name', 'User.created', 'User.modified'), 'order' =&gt; 'User.id ASC', 'conditions' =&gt; array($searchtype . ' ' . 'LIKE' =&gt; '%'.$value.'%')));<br />
	$this->set('results', $results);<br />
    }</code></p>
<p>It&#8217;s really a pretty standard find all but the key lies in the conditions. They are set to variables that are posted through the form. So if you selected Order ID as the type and entered 1 in the search box. Your condition would be array(&#8216;Order.id&#8217; => %1%) </p>
<p>One last thing is to create the search.ctp</p>
<p><code>&lt;div id="search"&gt;<br />
    &lt;form id="orderform" action="&lt;?php echo $html-&gt;url('/users/search'); ?&gt;" method="post" enctype="multipart/form-data"&gt;<br />
	&lt;label for="searchuser"&gt;Search Users:&lt;/label>&lt;input type="text" name="searchuser" /&gt;<br />
	Search By:<br />
&lt;input type="radio" name="searchtype" value="User.id"  checked&gt; User ID<br />
	&lt;input type="radio" name="searchtype" value="User.email"  checked&gt; User Email<br />
&lt;input type="radio" name="searchtype" value="Entity.name"&gt; Entity Name<br />
&lt;?php<br />
	    echo $form->end('Search');<br />
	?&gt; &lt;/div&gt;<br />
   &lt;div id="contentbox"&gt;<br />
&lt;h2&gt;Manage Users&lt;/h2&gt;<br />
&lt;table&gt;<br />
	&lt;thead&gt;<br />
		&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;Email&lt;/th&gt;&lt;th&gt;Entity Name&lt;/th&gt;<br />
	&lt;/thead&gt;<br />
	&lt;?php foreach($results as $user) : ?&gt;<br />
		&lt;tr&gt;<br />
			&lt;td&gt;&lt;?php echo $user['User']['id'] ?>&lt;/td&gt;<br />
			&lt;td&gt;&lt;?php echo $user['User']['email'] ?&gt;&lt;/td&gt;<br />
			&lt;td&gt;&lt;?php echo $user['Entity']['name'] ?&gt;&lt;/td&gt;<br />
			&lt;/tr&gt;<br />
	&lt;?php endforeach; ?&gt;<br />
&lt;/table&gt;<br />
&lt;/div&gt;<br />
</code><br />
It&#8217;s just a simple loop through the results. I also added the search box to the top of this page, so the user can run another search if they want.</p>
<p>So it may not be the cleanest solution in the world, but it works well, and is flexible enough so you can tweak it to many different situations. </p>
<p>If you have a better way to search with CakePHP, please let me know in the comments. Or feel free to ask any questions.</p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=6gz-rgurAww:EVfd272A0QI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=6gz-rgurAww:EVfd272A0QI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=6gz-rgurAww:EVfd272A0QI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=6gz-rgurAww:EVfd272A0QI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=6gz-rgurAww:EVfd272A0QI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=6gz-rgurAww:EVfd272A0QI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/6gz-rgurAww" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/06/create-a-ghetto-but-functional-search-function-for-cakephp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.travisberry.com/2010/06/create-a-ghetto-but-functional-search-function-for-cakephp/</feedburner:origLink></item>
		<item>
		<title>How To Setup A LAMP Virtual Machine</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/7-Awgg9qFMI/</link>
		<comments>http://www.travisberry.com/2010/05/comprehensive-guide-to-creating-a-lamp-virtual-machine/#comments</comments>
		<pubDate>Sun, 09 May 2010 19:24:28 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=977</guid>
		<description><![CDATA[
In an effort to develop in an environment closer to many production servers, many people have begun developing in virtual machines running on their host os. This article is a comprehensive guide to creating a LAMP virtual machine (plus a few other goodies).
First you need the virtual machine software. Download VirtualBox and install it on [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.travisberry.com/wp-content/uploads/2010/05/oldcomp.jpg" alt="" title="oldcomp" width="640" height="280" class="alignnone size-full wp-image-976" /><br />
In an effort to develop in an environment closer to many production servers, many people have begun developing in virtual machines running on their host os. This article is a comprehensive guide to creating a LAMP virtual machine (plus a few other goodies).<span id="more-977"></span></p>
<p>First you need the virtual machine software. Download <a href="http://www.virtualbox.org/wiki/Downloads" target="blank">VirtualBox</a> and install it on your host os. Once installed go download the latest version of <a href="http://www.ubuntu.com/GetUbuntu/download" target="blank">Ubuntu</a>. You want the desktop version, not the server. Save the .iso file to your desktop.</p>
<h2>VirtualBox Setup &#038; Ubuntu Installation</h2>
<p>Launch VirtualBox and create a new machine by clicking the button in the top left corner. Click next on the screen the comes up. Create a name for your new machine, and select Linux as your Operating System, and Ubuntu as you Version. Select a base amount of memory for the virtual machine to use. Use at least the default settings, but use as much as your system can spare. I recommend setting it to no more than 50% of your total RAM, unless you have lots to spare. Hit next. On the next screen select the option to create a new hard disk. This will launch the Create New Virtual Disk Wizard. Hit next. Select dynamically expanding storage and hit next. Select the size of the hard disk you want the virtual machine to have. This does take up real space on you computer. The default of 8 gigs should be sufficient for most. On the next screen hit finish. Then finish again.</p>
<p>Now with your new machine highlighted, click the start button. This will launch two new windows, one of them being the First Run Wizard. Hit next on the first screen. Select CD/DVD ROM Device. Then click the little folder next to the drop down list. Hit add and select the Ubuntu .iso file you save to your desktop. Highlight it and hit select. Hit next on the Select Installation Media page. Finish.</p>
<p>The Ubuntu .iso file will now start to run in the other window. When the install screen comes up select your language and hit the Install button, not the try button. On the next page select your time zone. Then pick your keyboard on the next screen. On the Prepare disk space page select the option to erase and use the entire disk then hit forward. Next fill out your user information. Make sure to set a password. On the next page hit install.</p>
<p>If you find you cant get your mouse back out of the virtual machine, look in the bottom right corner of the window. It should give you a short cut or a ket on your keyboard that when pressed will return your mouse to the host os.</p>
<p>When the installation is complete you will need to restart the computer. When it says, Please remove the disc and close the tray (if any) then press enter:, pull your mouse back out of the virtual machine and look at the bottom of the window. There should be an icon that looks like a CD. Click it and select unmount CD/DVD Device. Now click back in the Ubuntu window and hit enter. When the computer finishes restarting you will now have a working Ubuntu copy installed on your host os. </p>
<p>You may or may not be able to connect to the internet through your virtual machine by default. Check by launching Firefox and seeing if you have a connection. If you do not. Close the virtual machine. You can select shutdown from the system options or just close the window and choose power down. In the virtual box window select your virtual machine from the list on the left hand side and select Settings. Select Network from the top menu. Under Adapter 1 make sure Enable Network Adapter is checked, but change the Attached To drop down list from NAT to bridged adapter. Hit OK and restart the machine. You should now be able to connect to the internet.</p>
<p>Now that Ubuntu is installed and working it&#8217;s time to start installing the LAMP stack. For those who don&#8217;t know, LAMP stands for <a href="http://www.linux.org/" target="blank">Linux</a>, <a href="http://www.apache.org/" target="blank">Apache</a>, <a href="http://www.mysql.com/" target="blank">MySQL</a>, and <a href="http://php.net/index.php" target="blank">PHP</a>. This is a common setup among web developers, but you could also install Ruby or any other language. This one will focus just on the LAMP stack. (which is what you want if you use, wordpress, joomla, drupal, cakephp, or any of the other fine php packages)</p>
<h2>Install Apache 2</h2>
<p>Now open up Terminal (Applications > accessories > Terminal). Type in the following,</p>
<p><code>sudo apt-get install apache2</code></p>
<p>Terminal will prompt for your password. Enter it in.(Terminal does not show your password as you type, so just type it in and hit enter).</p>
<h2>Install PHP 5</h2>
<p>Apache should now be installed on your system. Now it&#8217;s time to install PHP 5. In terminal type,</p>
<p><code>sudo apt-get install php5 libapache2-mod-php5</code></p>
<h2>Install MySQL</h2>
<p>Now you have PHP 5 installed. To install MySQL type,</p>
<p><code>sudo apt-get install mysql-server</code></p>
<p>Enter in a password when the install prompts you to.</p>
<h2>Install phpMyAdmin</h2>
<p>Now install <a href="http://www.phpmyadmin.net/home_page/index.php" target="blank">phpMyAdmin</a> by typing</p>
<p><code>sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin</code></p>
<p>When phpmyadmin asks which server to use select apache. It will then ask to create a database. Tell it to do so and enter in the password you set when installing MySQL.</p>
<p>After installing all this you need to restart apache. To do so type</p>
<p><code>sudo /etc/init.d/apache2 restart</code></p>
<h2>Test Installation</h2>
<p>You should now have a working LAMP stack installed. To test everything is working, type in Terminal</p>
<p><code>gksudo gedit /var/www/info.php</code></p>
<p>When the new window opens add</p>
<p><code>&lt;?php phpinfo(); ?&gt;</code></p>
<p>Save and close the window. Now open Firefox and go to http://localhost/</p>
<p>You should see “It Works!”, if you do, apache is working, then go to http://localhost/info.php</p>
<p>If you see a long list of information about PHP 5 then it works as well.</p>
<p>Now everything is working as it should, but the default setup isn&#8217;t the best thing. We&#8217;re going to do a little bit more to make it a development dream come true.</p>
<h2>Fix Domain Name Error</h2>
<p>First you may have noticed when we restarted apache that it gave an error about not being able to determine the fully qualified domain name. To fix this error open the terminal and type,</p>
<p><code>gksudo gedit /etc/apache2/httpd.conf</code></p>
<p>Add to the file</p>
<p><code>ServerName localhost</code></p>
<p>Save and exit. Now restart again. You should no longer see an error.</p>
<h2>Install mod_rewrite</h2>
<p>Now lets add an important PHP 5 module. mod_rewrite. Many systems use this to turn ugly urls like,</p>
<p>example.com/?dkjfodocas223 into example.com/about/</p>
<p>You can enable the module by typing in the Terminal</p>
<p><code>sudo a2enmod rewrite</code></p>
<h2>Enable PHP 5 Error Displaying</h2>
<p>Another helpful feature not enabled by default is error displaying in PHP. Now on a production server it is good to turn these off, but when developing, they can be handy to have on. To enable type</p>
<p><code>gksudo gedit /etc/php5/apache2/php.ini</code></p>
<p>Make sure the following lines read as follows<br />
<code>display_errors = On<br />
display_startup_errors = On<br />
log_errors = On<br />
error_log = /pickadirectorytostoreerrors/phperror.log<br />
error_reporting = E_ALL &#038; E_STRICT</code></p>
<h2>Setup Virtual Hosts</h2>
<p>After errors are turned on, let&#8217;s setup an example virtual host. Virtual hosts are what allow you to host multiple websites on one server. This will allow example.com and test.com to point to two different sites.</p>
<p>To begin setting this up create two separate folders in /var/www/. Name one example.com and the other test.com. Create a simple index.html file in each, creating content that makes them easy to tell apart. Now cd to /etc/apache2/sites-enabled. Once there, type the following in Terminal</p>
<p><code>gksudo gedit example.com</code></p>
<p>Inside the file paste the following,</p>
<p><code>&lt;VirtualHost *:80&gt;<br />
ServerAdmin your@email.com<br />
ServerAlias www.example.com<br />
DocumentRoot /var/www/example.com<br />
        &lt;Directory /&gt;<br />
                Options FollowSymLinks<br />
                AllowOverride All<br />
        &lt;/Directory&gt;<br />
        &lt;Directory /var/www/example.com/&gt;<br />
                Options Indexes FollowSymLinks MultiViews<br />
                AllowOverride All<br />
                Order allow,deny<br />
                allow from all<br />
        &lt;/Directory&gt;<br />
        ErrorLog /var/www/example.com/logs/example-error.log<br />
        # Possible values include: debug, info, notice, warn, error, crit,<br />
        # alert, emerg.<br />
        LogLevel warn<br />
 CustomLog /var/www/example.com/logs/example-access.log combined<br />
&lt;/VirtualHost&gt;</code></p>
<p>Now create a link to the file in sites-available.</p>
<p><code>sudo ln -s /etc/apache2/sites-available/example.com</code></p>
<p>Next let&#8217;s create one for test.com</p>
<p><code>gksudo gedit test.com</code></p>
<p>Inside the file paste the following,</p>
<p><code>&lt;VirtualHost *:80&gt;<br />
ServerAdmin your@email.com<br />
ServerAlias www.test.com<br />
DocumentRoot /var/www/test.com<br />
        &lt;Directory /&gt;<br />
                Options FollowSymLinks<br />
                AllowOverride All<br />
        &lt;/Directory&gt;<br />
        &lt;Directory /var/www/test.com/&gt;<br />
                Options Indexes FollowSymLinks MultiViews<br />
                AllowOverride All<br />
                Order allow,deny<br />
                allow from all<br />
        &lt;/Directory&gt;<br />
        ErrorLog /var/www/test.com/logs/example-error.log<br />
        # Possible values include: debug, info, notice, warn, error, crit,<br />
        # alert, emerg.<br />
        LogLevel warn<br />
 CustomLog /var/www/test.com/logs/example-access.log combined<br />
&lt;/VirtualHost&gt;</code></p>
<p>Now create a link to the file in sites-available.</p>
<p><code>sudo ln -s /etc/apache2/sites-available/test.com</code></p>
<p>Now your virtual hosts are ready to go, but first we need to tell the computer to listen for the addresses. To do that type the following,</p>
<p><code>cd /etc/</code></p>
<p>Then</p>
<p><code>gksudo gedit hosts</code></p>
<p>Create a new line under the first. In it add</p>
<p><code>127.0.0.1  localhost www.example.com</code></p>
<p>Create another line and this time add</p>
<p><code>127.0.0.1  localhost www.test.com</code></p>
<p>Save and close the file. Restart apache</p>
<p><code>sudo /etc/init.d/apache2 restart </code></p>
<p>Now open Firefox and go to www.example.com. You should see your example.com index.html file. Now try www.test.com. If you see your test.com index.html file everything works as it should. Just repeat this process for any additional domains you would like to add.</p>
<p>If you want to be able to view your virtual machine sites in a browser on your host os you need to do a similar thing as the last step. First find the local IP address of the virtual machine. You can find this by going to System > Administration > Network Tools. Select your Network Device from the drop down and look for the Ipv4 IP Address. Let&#8217;s say mine is 192.168.10.4</p>
<p>Now move back to your host os. Open a terminal session in it. Find your hosts file. In OSX it is /etc/ just like Linux. Now add lines like so,</p>
<p><code>192.168.10.4 www.example.com<br />
192.168.10.4 www.test.com</code></p>
<p>You should now be able to view your example sites in a browser on your host os.</p>
<h2>Change Webroot Permissions</h2>
<p>Everything is starting to work quite well for development but there are still a few extras worth setting up. The first is changing permissions of your web root. To make you the owner of the /var/www directory type this in Terminal</p>
<p><code>sudo chown youruser:youruser /var/www</code></p>
<h2>Install Git</h2>
<p>This will now allow your user to easily create new folders and files. Next lets install my favorite version control system <a href="http://git-scm.com/" target="blank">Git</a>. To install type this into Terminal</p>
<p><code>sudo apt-get install git-core</code></p>
<h2>Install FTP</h2>
<p>You can now use git to control the code you develop on the machine. Next let&#8217;s add ftp support to make moving files between your host and guest operating systems a little easier. To install ftp support type,</p>
<p><code>sudo apt-get install proftpd</code></p>
<p>You can now open your favorite ftp application in your host os and connect to your virtual machine. Just use the IP (mine in this example is 192.168.10.4) and enter in your user name and password. Ta-da!</p>
<p>There you go. You now have a complete and awesome new development virtual machine. If there are any questions, or if you know a better way to do something, please let me know in the comments.</p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=7-Awgg9qFMI:2WsjJRiPuvk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=7-Awgg9qFMI:2WsjJRiPuvk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=7-Awgg9qFMI:2WsjJRiPuvk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=7-Awgg9qFMI:2WsjJRiPuvk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=7-Awgg9qFMI:2WsjJRiPuvk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=7-Awgg9qFMI:2WsjJRiPuvk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/7-Awgg9qFMI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/05/comprehensive-guide-to-creating-a-lamp-virtual-machine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.travisberry.com/2010/05/comprehensive-guide-to-creating-a-lamp-virtual-machine/</feedburner:origLink></item>
		<item>
		<title>Best Ogg Theora Video Compressor</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/G5mrXQs3p28/</link>
		<comments>http://www.travisberry.com/2010/04/best-ogg-theora-video-compressor/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 00:41:04 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=917</guid>
		<description><![CDATA[
A while back I did a comparison of the popular mp4 compressors. Specifically ones used to convert videos for HTML5 playback. Well here is a follow up, this time around though, we&#8217;re comparing compressors for Ogg Theora.
I try to make my content cross browser compatible, but for this one I have no choice. You must [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/lancesh/2162074087/" target="blank"><img src="http://www.travisberry.com/wp-content/uploads/2010/04/oggpixels.jpg" alt="" title="oggpixels" width="640" height="280" class="alignnone size-full wp-image-945" /></a><br />
A while back I did a <a href="http://www.travisberry.com/2010/03/video-compression-show-down/" target="blank">comparison of the popular mp4 compressors</a>. Specifically ones used to convert videos for HTML5 playback. Well here is a follow up, this time around though, we&#8217;re comparing compressors for Ogg Theora.</p>
<p>I try to make my content cross browser compatible, but for this one I have no choice. <strong>You must use Firefox or Chrome to fully view this post.</strong> The newer the version the better.<span id="more-917"></span></p>
<p>Anyway, back to the post. I started with a small clip from the 720p version of <a href="http://orange.blender.org/" target="blank">Elephants Dream</a>. It&#8217;s a cool little short and I suggest going and watching it if you haven&#8217;t already.</p>
<p>So with this clip in hand I ran it through 6 different compressors. </p>
<p><a href="http://v2v.cc/~j/ffmpeg2theora/" target="blank">ffmpeg2theora</a> (6.10 MB)</p>
<ul>
<li>lots of settings</li>
<li>smallest file</li>
<li>moderate quality</li>
<li>moderate ease of use</li>
</ul>
<p><video width="640" height="360" id="video" controls="true"><br />
  <source src="http://content.travisberry.com/uploads/oggoutputs/2theora.ogv" type='video/ogg; codecs="theora, vorbis"' /><br />
</video></p>
<p><a href="http://www.ffmpeg.org/" target="blank">FFmpeg</a> (6.19 MB)</p>
<ul>
<li>same as ffmpeg2theora</li>
<li>no sound (can have sound if you encode separately and then combine) </li>
<li>has to be a size divisible by 16</li>
</ul>
<p><video width="640" height="360" id="video" controls="true"><br />
  <source src="http://www.travisberry.com/html5video/oggoutputs/ffmpeg.ogg" type='video/ogg; codecs="theora, vorbis"' /><br />
</video></p>
<p><a href="http://firefogg.org/" target="blank">FireFogg</a> (18.87 MB)</p>
<ul>
<li>decent settings</li>
<li>fairly easy to use</li>
<li>good quality at large size</li>
</ul>
<p><video width="640" height="360" id="video" controls="true"><br />
  <source src="http://content.travisberry.com/uploads/oggoutputs/firefogg.ogv" type='video/ogg; codecs="theora, vorbis"' /><br />
</video></p>
<p><a href="http://www.mirovideoconverter.com/" target="blank">Miro Video Converter</a> (22.20 MB)</p>
<ul>
<li>largest size</li>
<li>best quality</li>
<li>easy to use</li>
<li>can&#8217;t resize</li>
<li>no settings for anything</li>
</ul>
<p><video width="640" height="360" id="video" controls="true"><br />
  <source src="http://www.travisberry.com/html5video/oggoutputs/miro.ogv" type='video/ogg; codecs="theora, vorbis"' /><br />
</video></p>
<p><a href="http://xiph.org/quicktime/" target="blank">QuickTime</a> (17.37 MB)</p>
<ul>
<li>good quality large size</li>
<li>same export as any other qt</li>
<li>moderate amounts of video settings, no audio settings</li>
</ul>
<p><video width="640" height="360" id="video" controls="true"><br />
  <source src="http://content.travisberry.com/uploads/oggoutputs/qt.ogg" type='video/ogg; codecs="theora, vorbis"' /><br />
</video></p>
<p><a href="http://www.videolan.org/vlc/" target="blank">VLC</a> (21.94 MB)</p>
<ul>
<li>large size</li>
<li>serious streaming issues</li>
<li>small amount of settings</li>
</ul>
<p><video width="640" height="360" id="video" controls="true"><br />
  <source src="http://www.travisberry.com/html5video/oggoutputs/vlc.ogg" type='video/ogg; codecs="theora, vorbis"' /><br />
</video></p>
<p>and for comparison </p>
<p>h264 (6.22 MB)<br />
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="376" width="640"><param name="src" value="http://www.travisberry.com/html5video/oggoutputs/h264.mov"><param name="autoplay" value="true"><param name="type" value="video/quicktime" height="376" width="640"><embed src="http://www.travisberry.com/html5video/oggoutputs/h264.mov" height="376" width="640" autoplay="false" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></p>
<p>In the end I would recommend ffmpeg2theora. If you&#8217;re comfortable with the command line that is. Otherwise, everything except VLC would work for you. </p>
<p>For the curious here are the commands I used.</p>
<p>FFmpeg<br />
<code>ffmpeg -i Elephants_Dream.mov -vcodec libtheora -b 700k -s 512x288 -acodec libvorbis -ab 96k -threads 6 test.ogg</code></p>
<p>ffmpeg2theora<br />
<code>ffmpeg2theora -V 700 -A 96 -H 44100 -K 24 -x 640 -y 360 --two-pass --optimize --speedlevel 0 --seek-index --soft-target --pp vdeblock:10/hdeblock:10 Elephants_Dream.mov</code></p>
<p>If you have any suggestions for improving these please let me know in the comments. </p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=G5mrXQs3p28:Jzo5GOfXbMg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=G5mrXQs3p28:Jzo5GOfXbMg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=G5mrXQs3p28:Jzo5GOfXbMg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=G5mrXQs3p28:Jzo5GOfXbMg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=G5mrXQs3p28:Jzo5GOfXbMg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=G5mrXQs3p28:Jzo5GOfXbMg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/G5mrXQs3p28" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/04/best-ogg-theora-video-compressor/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
<enclosure url="http://content.travisberry.com/uploads/oggoutputs/2theora.ogv" length="6400440" type="video/ogg" />
<enclosure url="http://www.travisberry.com/html5video/oggoutputs/ffmpeg.ogg" length="6489705" type="audio/ogg" />
<enclosure url="http://content.travisberry.com/uploads/oggoutputs/firefogg.ogv" length="19781995" type="video/ogg" />
<enclosure url="http://www.travisberry.com/html5video/oggoutputs/miro.ogv" length="23275699" type="video/ogg" />
<enclosure url="http://content.travisberry.com/uploads/oggoutputs/qt.ogg" length="18214805" type="audio/ogg" />
<enclosure url="http://www.travisberry.com/html5video/oggoutputs/vlc.ogg" length="23002681" type="audio/ogg" />
<enclosure url="http://www.travisberry.com/html5video/oggoutputs/h264.mov" length="6526204" type="video/quicktime" />
		<media:content url="http://content.travisberry.com/uploads/oggoutputs/2theora.ogv" fileSize="6400440" type="video/ogg" /><itunes:explicit>no</itunes:explicit><itunes:subtitle> A while back I did a comparison of the popular mp4 compressors. Specifically ones used to convert videos for HTML5 playback. Well here is a follow up, this time around though, we&amp;#8217;re comparing compressors for Ogg Theora. I try to make my content cro</itunes:subtitle><itunes:summary> A while back I did a comparison of the popular mp4 compressors. Specifically ones used to convert videos for HTML5 playback. Well here is a follow up, this time around though, we&amp;#8217;re comparing compressors for Ogg Theora. I try to make my content cross browser compatible, but for this one I have no choice. You must [...]</itunes:summary><itunes:keywords>Uncategorized</itunes:keywords><feedburner:origLink>http://www.travisberry.com/2010/04/best-ogg-theora-video-compressor/</feedburner:origLink></item>
		<item>
		<title>Adding Internet Streaming To FFmpeg Outputs</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/Xpb7QE49VN8/</link>
		<comments>http://www.travisberry.com/2010/04/adding-internet-streaming-to-ffmpeg-outputs/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 19:48:21 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=908</guid>
		<description><![CDATA[
Just a quick post. After deciding that FFmpeg was my video compressor of choice, I ran into a small problem. The videos that are outputted don&#8217;t begin playing immediately when embedded in a web page. This is a pretty big setback.
Luckily there is a small AIR application that can solve the problem for us. QTIndexSwapper [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.travisberry.com/wp-content/uploads/2010/04/qtindexswapper.jpg" alt="QTindexswapper" title="qtindexswapper" width="640" height="270" class="alignnone size-full wp-image-907" /><br />
Just a quick post. After deciding that FFmpeg was my video compressor of choice, I ran into a small problem. The videos that are outputted don&#8217;t begin playing immediately when embedded in a web page. This is a pretty big setback.<span id="more-908"></span></p>
<p>Luckily there is a small AIR application that can solve the problem for us. <a href="http://renaun.com/blog/2008/08/14/262/" target="blank">QTIndexSwapper</a> is a small application that prepares .h264 encoded video for internet streaming. It does this by rearranging the index file. It&#8217;s simple and fast, and from what I&#8217;ve seen so far, adds no quality loss to your video. </p>
<p>So if you&#8217;ve tried the code I posted for compressing video with FFmpeg, but have had trouble streaming them on the web, try this application. </p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=Xpb7QE49VN8:a5vUA7OHFnI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=Xpb7QE49VN8:a5vUA7OHFnI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=Xpb7QE49VN8:a5vUA7OHFnI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=Xpb7QE49VN8:a5vUA7OHFnI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=Xpb7QE49VN8:a5vUA7OHFnI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=Xpb7QE49VN8:a5vUA7OHFnI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/Xpb7QE49VN8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/04/adding-internet-streaming-to-ffmpeg-outputs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisberry.com/2010/04/adding-internet-streaming-to-ffmpeg-outputs/</feedburner:origLink></item>
		<item>
		<title>Video Compression Show Down</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/wNajR1bMjC8/</link>
		<comments>http://www.travisberry.com/2010/03/video-compression-show-down/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 20:31:45 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=845</guid>
		<description><![CDATA[
Video compression is an absolutely critical component that has allowed online video to take off in recent years. Advancing from super pixelated 320&#215;240 video, to rich and vibrant 1080p has required massive improvements in compression technology.
Wikipedia: “Video compression refers to reducing the quantity of data used to represent digital video images, and is a combination [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/reckon/3262118500/" target="blank"><img src="http://content.travisberry.com/uploads/2010/03/videopixels.jpg" alt="" title="videopixels" width="640" height="360" class="alignnone size-full wp-image-844" /></a><br />
Video compression is an absolutely critical component that has allowed online video to take off in recent years. Advancing from super pixelated 320&#215;240 video, to rich and vibrant 1080p has required massive improvements in compression technology.<span id="more-845"></span></p>
<p><a href="http://en.wikipedia.org/wiki/Video_compression" target="blank">Wikipedia</a>: “Video compression refers to reducing the quantity of data used to represent digital video images, and is a combination of spatial image compression and temporal motion compensation. Most video compression is lossy — it operates on the premise that much of the data present before compression is not necessary for achieving good perceptual quality. For example, DVDs use a video coding standard called MPEG-2 that can compress around two hours of video data by 15 to 30 times, while still producing a picture quality that is generally considered high-quality for standard-definition video. Video compression is a tradeoff between disk space, video quality, and the cost of hardware required to decompress the video in a reasonable time. However, if the video is overcompressed in a lossy manner, visible (and sometimes distracting) artifacts can appear.”</p>
<p>Uncompressed video, especially HD versions, can require gigabytes per minute of recording. These kinds of files require way too much bandwidth to be considered reasonable for the web. The best way to solve this problem is with compression.</p>
<p>There are numerous video compression softwares out there. They range in price from free, to thousands of dollars. Each one has strengths and weaknesses. I&#8217;m going to compare a couple of the more popular options.</p>
<p>These are:</p>
<ul>
<li><a href="http://www.apple.com/finalcutstudio/compressor/" target="blank">Compressor</a></li>
<li><a href="http://www.roxio.com/enu/products/toast/titanium/overview.html" target="blank">Toast</a></li>
<li><a href="http://www.apple.com/quicktime/tutorials/h264.html" target="blank">Regular QuickTime export</a></li>
<li><a href="http://ffmpeg.org/" target="blank">FFmpeg</a></li>
</ul>
<p>Some of these use the same basic underlying compression technology, but the options they allow to to set, or the way they use them does differ.</p>
<p>For the test, I ran a 1280&#215;720 .mov with Animation compression. For those who don&#8217;t know, Animation is a lossless codec, resulting in quite large files. For example, the source video at only 1 minute in length came out to 3.26 gigabytes. Ouch.</p>
<p>I compressed this massive file down to size, by setting the bit rate to only 400k and reducing the audio quality to 96k at 44.1 KHz. I also resized it to 640&#215;360. I&#8217;m doing this quality test with the ever so excellent <a href="http://en.wikipedia.org/wiki/H.264" target="blank">H264</a> codec. </p>
<p>Ugh, there&#8217;s no real great place to interject this so I&#8217;ll just do it now. For “best” results, you should resize video to sizes that are evenly divisible by 16. I didn&#8217;t do that, I don&#8217;t seem to notice a difference when you do. I tried both but at the end of the day, on my site, My videos need to be 640px wide. For the curious these are a few sizes that are divisible by 16. The reason for this is pretty technical and could warrant a giant post by itself, so just take my word that for “best” results, use one of these sizes.</p>
<p>256 x 144<br />
512 x 288<br />
768 x 432<br />
1024 x 576 </p>
<p>So anyway, here are the results.</p>
<p>Compressor: Size – 4.8 MB<br />
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="376" width="640"><param name="src" value="http://www.travisberry.com/videocompressiontests/demoforweb33fromcompressor.mov"><param name="autoplay" value="true"><param name="type" value="video/quicktime" height="376" width="640"><embed src="http://www.travisberry.com/videocompressiontests/demoforweb33fromcompressor.mov" height="376" width="640" autoplay="false" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></p>
<p>Toast: Size – 4.7 MB<br />
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="376" width="640"><param name="src" value="http://www.travisberry.com/videocompressiontests/demoforweb3fromtoast.mov"><param name="autoplay" value="true"><param name="type" value="video/quicktime" height="376" width="640"><embed src="http://www.travisberry.com/videocompressiontests/demoforweb3fromtoast.mov" height="376" width="640" autoplay="false" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></p>
<p>Regular QuickTime export: Size – 4.5 MB<br />
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="376" width="640"><param name="src" value="http://www.travisberry.com/videocompressiontests/demoforweb32fromqt.mov"><param name="autoplay" value="true"><param name="type" value="video/quicktime" height="376" width="640"><embed src="http://www.travisberry.com/videocompressiontests/demoforweb32fromqt.mov" height="376" width="640" autoplay="false" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></p>
<p>FFmpeg: Size – 3.7 MB<br />
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="376" width="640"><param name="src" value="http://www.travisberry.com/videocompressiontests/test11.mov"><param name="autoplay" value="true"><param name="type" value="video/quicktime" height="376" width="640"><embed src="http://www.travisberry.com/videocompressiontests/test11.mov" height="376" width="640" autoplay="false" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></p>
<p>The clear and obvious winner is <a href="http://ffmpeg.org/" target="blank">FFmpeg</a>. Notice that is the smallest file size as well. The other compressors do decent jobs, don&#8217;t get me wrong, but you need to double or triple the file size to reach the same quality.</p>
<p>The even better news, FFmpeg is free and open source. Wait did you catch that? It&#8217;s <strong>FREE</strong>! One giant downside, it&#8217;s command line based. This isn&#8217;t huge to me, as I know how to use the command line, but for many, touching the command line is the last thing they are comfortable doing. However, it&#8217;s not too hard to install if you go the <a href="http://www.macports.org/" target="blank">macports</a> route. Using it to it&#8217;s best capabilities is nothing easy either.</p>
<p>So for simplicities sake I present to you my super awesome FFmpeg compression commands.</p>
<p>For a single pass render:</p>
<p><code>ffmpeg -i sourcemovie.mov -vcodec libx264 -vpre hq -b 400k -g 250 -keyint_min 24 -bf 16 -coder 1 -refs 6 -flags +loop -deblockalpha -6 -deblockbeta -6 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -flags2 +dct8x8+mixed_refs+wpred+bpyramid -me_method umh -subq 8 -s 640x360 -acodec libfaac -ar 44100 -ab 96k -threads 6 -f mp4 outputmovie.mp4</code></p>
<p>For a two pass render:</p>
<p><code>ffmpeg -i sourcemovie.mov -vcodec libx264 -vpre hq -b 400k -g 250 -keyint_min 24 -bf 16 -coder 1 -refs 6 -flags +loop -deblockalpha -6 -deblockbeta -6 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -flags2 +dct8x8+mixed_refs+wpred+bpyramid -me_method umh -subq 8 -s 640x360 -an -threads 6 -f mp4 -pass 1 /dev/null</code></p>
<p><code>ffmpeg -i sourcemovie.mov -vcodec libx264 -vpre hq -b 400k -g 250 -keyint_min 24 -bf 16 -coder 1 -refs 6 -flags +loop -deblockalpha -6 -deblockbeta -6 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -flags2 +dct8x8+mixed_refs+wpred+bpyramid -me_method umh -subq 8 -s 640x360 -acodec libfaac -ar 44100 -ab 96k -threads 6 -f mp4 -pass 2 outputmovie.mp4</code></p>
<p>Run the first command, then run the second for a two pass render. </p>
<p>I used a two pass render in the test above.<br />
To better understand what all those setting mean, I recommend taking a look at this site</p>
<p><a href="http://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping" target="blank">http://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping</a></p>
<p>Or the FFmpeg documentation at <a href="http://ffmpeg.org/ffmpeg-doc.html" target="blank">http://ffmpeg.org/ffmpeg-doc.html</a></p>
<p>For lots of other examples on compressing to and from different formats, I recommend reading</p>
<p><a href="http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs" target="blank">http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs</a></p>
<p>So there you go. If you&#8217;re looking for a way to reduce your bandwidth costs, or just want to save time in uploading them, consider checking out FFmpeg. Honestly though, if you&#8217;re just dumping your videos on youtube, you may consider just bumping up the quality on another compressor and using that. Ease of use is definitely in the favor of the other options.</p>
<p>If you use FFmpeg and have some great command to share, let me know in the comments. Or if you use a compressor not listed and want to share results, let me know as well.</p>
<p>Oh, and if you noticed this conveniently compresses out to a HTML5 friendly format, good for you. You sharp cookie you. Well check back in the next week or so where I&#8217;ll do the same thing for Ogg video. How exciting!</p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=wNajR1bMjC8:lMQCpJ2OGAU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=wNajR1bMjC8:lMQCpJ2OGAU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=wNajR1bMjC8:lMQCpJ2OGAU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=wNajR1bMjC8:lMQCpJ2OGAU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=wNajR1bMjC8:lMQCpJ2OGAU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=wNajR1bMjC8:lMQCpJ2OGAU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/wNajR1bMjC8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/03/video-compression-show-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.travisberry.com/videocompressiontests/demoforweb33fromcompressor.mov" length="5061040" type="video/quicktime" />
<enclosure url="http://www.travisberry.com/videocompressiontests/demoforweb3fromtoast.mov" length="4966972" type="video/quicktime" />
<enclosure url="http://www.travisberry.com/videocompressiontests/demoforweb32fromqt.mov" length="4699601" type="video/quicktime" />
<enclosure url="http://www.travisberry.com/videocompressiontests/test11.mov" length="3862393" type="video/quicktime" />
		<media:content url="http://www.travisberry.com/videocompressiontests/demoforweb33fromcompressor.mov" fileSize="5061040" type="video/quicktime" /><itunes:explicit>no</itunes:explicit><itunes:subtitle> Video compression is an absolutely critical component that has allowed online video to take off in recent years. Advancing from super pixelated 320&amp;#215;240 video, to rich and vibrant 1080p has required massive improvements in compression technology. Wik</itunes:subtitle><itunes:summary> Video compression is an absolutely critical component that has allowed online video to take off in recent years. Advancing from super pixelated 320&amp;#215;240 video, to rich and vibrant 1080p has required massive improvements in compression technology. Wikipedia: “Video compression refers to reducing the quantity of data used to represent digital video images, and is a combination [...]</itunes:summary><itunes:keywords>Uncategorized</itunes:keywords><feedburner:origLink>http://www.travisberry.com/2010/03/video-compression-show-down/</feedburner:origLink></item>
		<item>
		<title>On HTML5 Video</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/5DwggSXVVMg/</link>
		<comments>http://www.travisberry.com/2010/02/on-html5-video/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 15:42:02 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=812</guid>
		<description><![CDATA[
Hey! Have you heard? HTML5 video is going to revolutionize the way we use video on the web. No more dealing with Flash or Quicktime embeds. Video will now be as simple as adding an image. 
Ummm, no. It&#8217;s not. It&#8217;s not even close. That&#8217;s not to say it&#8217;s all bad, but boy howdy does [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://commons.wikimedia.org/wiki/File:Train_Wreck_1922.jpg#file" target="blank"><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Train_Wreck.jpg" alt="" title="Train_Wreck" width="640" height="320" class="alignnone size-full wp-image-811" /></a><br />
Hey! Have you heard? <a href="http://en.wikipedia.org/wiki/HTML5_video" target="blank">HTML5 video</a> is going to revolutionize the way we use video on the web. No more dealing with Flash or Quicktime embeds. Video will now be as simple as adding an image. </p>
<p>Ummm, no. It&#8217;s not. It&#8217;s not even close. That&#8217;s not to say it&#8217;s all bad, but boy howdy does it have a long way to go.<span id="more-812"></span></p>
<p>Before I get to the bashing let&#8217;s talk about what is good about HTML5 video.</p>
<p>Well first off, it is in theory as easy as adding an image.</p>
<p><code>&lt;video src="movie.ogg" controls="controls"&gt;<br />
&lt;/video&gt;</code></p>
<p>Holy crap that is simple. Unfortunately your code will not end up looking like that. More on it in a bit.</p>
<p>Another HUGE benefit is not having to use Flash. Anyone who has experience with Flash video knows how horrible it is. The embed codes are a nightmare and of course you&#8217;re dealing with plugins that the user may or may not have.</p>
<p>All around, HTML5 video should be a big improvement. Only problem is, it could be worse than the methods used today. Here&#8217;s why.</p>
<p>Codecs, codecs, codecs&#8230;</p>
<p>Ugh, this is one of the biggest pains to deal with. Guess what, different browsers use different video codecs for HTML5 video. Firefox uses <a href="http://en.wikipedia.org/wiki/Theora" target="blank">Ogg Theora</a> and Safari uses <a href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC" target="blank">H.264 MP4</a>. So in order for you to have a video play in multiple browsers <strong>you need to make at least two versions</strong>. </p>
<p>That simple code above now turns into</p>
<p><code>&lt;video width="320" height="240" controls&gt;<br />
  &lt;source src="NewOrleans2006.ogv" type='video/ogg; codecs="theora, vorbis"'&gt;<br />
  &lt;source src="NewOrleans2006.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;<br />
&lt;/video&gt;</code></p>
<p>Not so simple anymore is it? Not horrible but not the elegant solution we were promised. </p>
<p>This battle of the codecs has got to end. The argument boils down to the fact that H.264 and MP4 are proprietary of the <a href="http://en.wikipedia.org/wiki/Moving_Picture_Experts_Group" target="blank">MPEG</a> consortium and Ogg Theora are open source. </p>
<p>I get Mozilla&#8217;s argument that they only support open standards, thus the use of Ogg in FireFox, but there is a giant elephant in the room that nobody is mentioning. </p>
<p>It&#8217;s that Ogg Theora as a codec is in it&#8217;s infancy compared to H.264 and really kind of sucks in comparison. You can compare the two on my page, <a href="http://www.travisberry.com/copyright-and-the-internet/">travisberry.com/copyright-and-the-internet/</a> </p>
<p>View it in FireFox and then in Safari. Notice the WAY smoother video in the Safari version. Yeah, me too.</p>
<p>The solution I would really like to see (but I&#8217;m not holding my breath) is for MPEG to step up and realize that they have the opportunity to seize the online video market and release H.264 into the open source community. <strong>Drop all the dumb-ass licensing arrangements and give H.264 away.</strong></p>
<p>That is the first main issue with HTML5 video. The other huge issue is legacy browsers. Unless you are using the newest versions of FireFox, Chrome, or Safari, you probably can&#8217;t see HTML5 video. So this causes us to have to add more code to make sure people can still see our content. This involves some kind of fallback to Flash video. The thing we were trying to avoid in the first place.</p>
<p>I&#8217;ll write this again for importance. <strong>You still have to include Flash video</strong> if you want your video to play across all browsers. Damn it!</p>
<p>So now that super simple code to embed videos now looks like this to make sure it handles all browsers nicely. Note, this still won&#8217;t show anything in FireFox 2 but it will show in IE. Most FF users tend to update on a regular basis so it&#8217;s no huge deal.</p>
<p><code>&lt;video width="640" height="360" id="video" poster="http://www.travisberry.com/html5video/videos/copyright/copyright-poster.jpg" controls="true"&gt;<br />
&lt;source src="http://www.travisberry.com/html5video/videos/copyright/copyright-desktop.mp4" type='video/mp4; codecs="avc1.64001E, mp4a.40.2"' /&gt;<br />
  &lt;source src="http://www.travisberry.com/html5video/videos/copyright/copyright-iPhone-cell.3gp" type='video/3gpp; codecs="mp4v.20.8, samr"' /&gt;<br />
  &lt;source src="http://www.travisberry.com/html5video/videos/copyright/copyright-desktop3.ogv" type='video/ogg; codecs="theora, vorbis"' /&gt;<br />
&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lFeI5SqGYJ8&#038;hl=en_US&#038;fs=1&#038;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param>&lt;embed src="http://www.youtube.com/v/lFeI5SqGYJ8&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;<br />
&lt;/video&gt;</code></p>
<p>Notice instead of adding a flash video I added a youtube embed. I was tired of crunching out different codecs by this point so I said screw it and let youtube handle some of the work. (I also added an iPhone version so the code is a little longer than necessary, but not by much)</p>
<p>Ok, so my super simple code has grown kind of large and unwieldy but no biggie, it works so I could live with this.</p>
<p>Time to watch this bad boy in some browsers. Wait, WTF is going on? Why are my videos autobuffering in Chrome and Safari. This is bad. Real bad. What if I have 4 or 5 videos on one page? It&#8217;s going to buffer all of them at once!?</p>
<p>Yes it will. For reasons unknown, Chrome and Safari have decided to ignore the autobuffer attribute. <strong>They will autobuffer your video come hell or high water.</strong></p>
<p>Again, we can work around this using a javascript method. Daring Fireball has a <a href="http://daringfireball.net/misc/2009/12/user_guide_demos" target="blank">good example</a> (view source to see how it works). Only problem with it is that in FireFox I was experiencing double audio when using the javascript solution. So that didn&#8217;t work for me.</p>
<p>The half-assed solution I came up with was to go ahead and let the video autobuffer. I used to have all of my example videos on one page. That was not cool with autobuffering. Now I have a navigation menu linking to each video on it&#8217;s own page. Now when it autobuffers, it&#8217;s not such a huge deal. (I figure if they clicked through to the video, at this point they are trying to watch)</p>
<p>So in the end I was able to implement HTML5 video. It isn&#8217;t pretty and far from perfect but it is possible. For now, I am going to continue to recommend most people go with a Flash video solution. It&#8217;s just not worth the hassle for the average user. Let&#8217;s hope the people in charge can save the &lt;video&gt; tag, it could be great, it&#8217;s just not there yet.</p>
<p>Have you tried to use HTML5 video? Let me know how it went in the comments.</p>
<p><strong>Edit:</strong><br />
After some tweaking of the encode settings, I managed to get a decent output in Ogg. So I recant a bit on it being horrible, but it&#8217;s still not quite as good as H.264</p>
<p>Here are several other good resources that explore the use of HTML5 video.</p>
<p><a href="http://hardwarebug.org/2010/03/03/ogg-objections/" target="blank">Ogg objections</a></p>
<p><a href="http://hardwarebug.org/2008/11/17/ogg-timestamps-explored/" target="blank">Ogg timestamps explored</a></p>
<p><a href="http://code.google.com/p/html5media/" target="blank">HTML5 video for everyone!</a></p>
<p><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#video" target="blank">The video element</a></p>
<p><a href="http://www.niallkennedy.com/blog/2010/02/html5-video-markup.html" target="blank">HTML5 video markup, compatibility and playback</a></p>
<p><a href="http://diveintohtml5.org/video.html" target="blank">Video on the Web</a></p>
<p><a href="http://daringfireball.net/2009/12/html5_video_unusable" target="blank">Why the HTML5 ‘Video’ Element Is Effectively Unusable, Even in Browsers Which Support It</a></p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=5DwggSXVVMg:svTL9NXuTew:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=5DwggSXVVMg:svTL9NXuTew:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=5DwggSXVVMg:svTL9NXuTew:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=5DwggSXVVMg:svTL9NXuTew:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=5DwggSXVVMg:svTL9NXuTew:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=5DwggSXVVMg:svTL9NXuTew:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/5DwggSXVVMg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/02/on-html5-video/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://www.travisberry.com/html5video/videos/copyright/copyright-desktop.mp4" length="42174823" type="video/mp4" />
<enclosure url="http://www.travisberry.com/html5video/videos/copyright/copyright-iPhone-cell.3gp" length="3214804" type="video/3gpp" />
<enclosure url="http://www.travisberry.com/html5video/videos/copyright/copyright-desktop3.ogv" length="35362954" type="video/ogg" />
		<media:content url="http://www.travisberry.com/html5video/videos/copyright/copyright-desktop.mp4" fileSize="42174823" type="video/mp4" /><itunes:explicit>no</itunes:explicit><itunes:subtitle> Hey! Have you heard? HTML5 video is going to revolutionize the way we use video on the web. No more dealing with Flash or Quicktime embeds. Video will now be as simple as adding an image. Ummm, no. It&amp;#8217;s not. It&amp;#8217;s not even close. That&amp;#8217;s </itunes:subtitle><itunes:summary> Hey! Have you heard? HTML5 video is going to revolutionize the way we use video on the web. No more dealing with Flash or Quicktime embeds. Video will now be as simple as adding an image. Ummm, no. It&amp;#8217;s not. It&amp;#8217;s not even close. That&amp;#8217;s not to say it&amp;#8217;s all bad, but boy howdy does [...]</itunes:summary><itunes:keywords>Uncategorized</itunes:keywords><feedburner:origLink>http://www.travisberry.com/2010/02/on-html5-video/</feedburner:origLink></item>
		<item>
		<title>Create Simple A/B Tests In WordPress</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/x_-xLcc4q60/</link>
		<comments>http://www.travisberry.com/2010/02/how-to-create-simple-ab-tests-in-wordpress/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 20:14:07 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=679</guid>
		<description><![CDATA[
One of the best things you can implement in your site right now is A/B testing. 
According to good old Wikipedia, A/B testing is;
&#8220;A/B testing, split testing, or bucket testing is a method of marketing testing by which a baseline control sample is compared to a variety of single-variable test samples in order to improve [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/jurvetson/133261764/" target="blank"><img src="http://content.travisberry.com/uploads/2010/02/abtest1.jpg" alt="" title="abtest1" width="640" height="320" class="alignnone size-full wp-image-685" /></a><br />
One of the best things you can implement in your site right now is A/B testing. </p>
<p>According to good old <a href="http://en.wikipedia.org/wiki/A/B_testing" target="blank">Wikipedia</a>, A/B testing is;</p>
<blockquote><p>&#8220;A/B testing, split testing, or bucket testing is a method of marketing testing by which a baseline control sample is compared to a variety of single-variable test samples in order to improve response rates&#8221;</p></blockquote>
<p><span id="more-679"></span></p>
<p>It&#8217;s a method to test different versions of things and compare their effectiveness against others. </p>
<p>In web design they are often used to test the effectiveness of converting users in some way. Whether it is selling them something, getting them to sign up for something, or just getting them to go to another page. As with all design there are a million ways to say or lay something out. A/B testing allows you to try multiple versions and find the one that works best for your goals.</p>
<p>So, setting up an A/B test isn&#8217;t all that hard. First thing to do is come up with your test materials. I would recommend starting with simple text changes to get the hang of A/B testing. For this example I&#8217;m going to create an author box that goes at the end of my posts.</p>
<p>Next figure out what your goal is. The easiest to use are pages you want the client to reach. These can be landing pages after someone fills out a form, or it can be the form page itself. I want people to end up on my contact page.</p>
<p>Now write several versions of your author text, with wording that encourages people clicking through to your contact page. Go a head and do it now, I&#8217;ll wait.</p>
<p>Ok, with all your text ready to go we can now start setting up the experiment. Go to <a href="http://www.google.com/websiteoptimizer" target="blank">www.google.com/websiteoptimizer</a> and sign up for an account. I used my gmail account with all my other services attached to it to make things a little easier.<br />
<img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer_1266539675736.jpg" alt="" title="Website-Optimizer_1266539675736" width="640" height="439" class="alignnone size-full wp-image-681" /></p>
<p>Once your all signed up you&#8217;ll end up at a page like this,<br />
<img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer_1266536670466.jpg" alt="" title="Website-Optimizer_1266536670466" width="640" height="364" class="alignnone size-full wp-image-675" /></p>
<p>Here click the “<strong>Create another experiment</strong>” link near the top left. Yours may say “<strong>Create a new experiment</strong>” depending if you&#8217;ve ever done this before or not. As you can see in the pics, I&#8217;ve done this a few times already. </p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer_1266536889392.jpg" alt="" title="Website-Optimizer_1266536889392" width="640" height="320" class="alignnone size-full wp-image-676" /></p>
<p>On the next page you can choose between an “<strong>A/B Experiment &#8211; The simplest way to start testing fast</strong>&#8221; or a “<strong>Multivariate Experiment &#8211; The most robust way to test lots of ideas</strong>&#8220;.</p>
<p>Choose “<strong>Multivariate Experiment &#8211; The most robust way to test lots of ideas</strong>&#8220;.</p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer_1266536999518.jpg" alt="" title="Website-Optimizer_1266536999518" width="640" height="494" class="alignnone size-full wp-image-677" /></p>
<p>Check the box on the next page and click “<strong>create</strong>”</p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer_1266537040200.jpg" alt="" title="Website-Optimizer_1266537040200" width="640" height="516" class="alignnone size-full wp-image-678" /></p>
<p>Now we&#8217;re getting somewhere. Here name your experiment in the first text box. Name it something easy to remember and understand. I&#8217;m calling mine “contactbox2”</p>
<p>In the next box put the url of the page that the author box is going to be one. Mine is “http://www.travisberry.com/2010/02/10-easy-solutions-for-contact-forms/”</p>
<p>The box below is the url of the goal page. Mine is “http://www.travisberry.com/contact/”</p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer-contactbox2_1266537264751.jpg" alt="" title="Website-Optimizer---contactbox2_1266537264751" width="640" height="320" class="alignnone size-full wp-image-671" /></p>
<p>Click “<strong>You will install and validate the JavaScript tags</strong>“ on the next page.</p>
<p>The next page will look like this</p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer-contactbox2_1266537309676.jpg" alt="" title="Website-Optimizer---contactbox2_1266537309676" width="640" height="955" class="alignnone size-full wp-image-672" /></p>
<p>You can leave it alone for a second and instead open up a new tab. Download the <strong>Google Website Optimizer</strong> plugin from <a href="http://wordpress.org/extend/plugins/google-website-optimizer-for-wordpress/" target="blank">http://wordpress.org/extend/plugins/google-website-optimizer-for-wordpress/</a></p>
<p>Install and activate it in your WordPress install.</p>
<p>Hang in there, we&#8217;re getting closer. </p>
<p>Now, go and edit the post or page you listed as your starting point. </p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/BerryWordPress_1266537527627.jpg" alt="" title="BerryWordPress_1266537527627" width="640" height="640" class="alignnone size-full wp-image-670" /></p>
<p>Notice there is now a new section added below the wysiwyg editor. Switch back to your google tab and copy the “<strong>Control Script</strong>”. Move back to your WordPress admin area and paste the code in the “<strong>Control Script</strong>” box. Repeat for the “<strong>Tracking Script</strong>”. DO NOT put the “Conversion Script” on this page. </p>
<p>Instead go to your goal page, contact in my case, and paste the “<strong>Conversion Script</strong>” code there. You don&#8217;t need to bother with the “Control” or “ Tracking Script” on this page,</p>
<p>Now go back and edit your post again. Scroll to where you want your author box to be in your post. Once there paste the code</p>
<p><code>&lt;script&gt;utmx_section("Insert your section name here")&lt;/script&gt;</code></p>
<p>Followed by the text you want to use in you author box. Only put one version in at this point.</p>
<p>At the end of the text paste this</p>
<p><code>&lt;/noscript&gt;</code></p>
<p>Now change the &#8220;<strong>Insert your section name here</strong>&#8221; to something easy to deal with.</p>
<p>Once you have everything in WordPress go back to the google tab.</p>
<p>Scroll to the bottom and click “<strong>Validate Pages</strong>”. If everything went well you should get confirmation and be allowed to click “<strong>Continue</strong>”.</p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer-contactbox2_1266538416866.jpg" alt="" title="Website-Optimizer---contactbox2_1266538416866" width="640" height="558" class="alignnone size-full wp-image-673" /></p>
<p>This page is where we get to start adding the variations. Click “<strong>Add new variation</strong>” and enter in your second variation you wrote back in the beginning. Keep adding until you&#8217;ve added everything you wrote, then hit “<strong>Save and Continue</strong>”</p>
<p><img src="http://www.travisberry.com/wp-content/uploads/2010/02/Website-Optimizer-contactbox2_1266538830910.jpg" alt="" title="Website-Optimizer---contactbox2_1266538830910" width="640" height="685" class="alignnone size-full wp-image-674" /></p>
<p>From here you can launch the experiment and watch as your traffic is split and analyzed. Results will take a while depending on your level of traffic, but expect to wait at least a day before you can see anything.</p>
<p>Well that about covers it. See I told you it was simple. A/B test can be used to learn some surprising things about the nature of your audience. If you have experience with A/B testing and want to share some results, post them in the comments.</p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=x_-xLcc4q60:ReIS4vw9MlI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=x_-xLcc4q60:ReIS4vw9MlI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=x_-xLcc4q60:ReIS4vw9MlI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=x_-xLcc4q60:ReIS4vw9MlI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=x_-xLcc4q60:ReIS4vw9MlI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=x_-xLcc4q60:ReIS4vw9MlI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/x_-xLcc4q60" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/02/how-to-create-simple-ab-tests-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.travisberry.com/2010/02/how-to-create-simple-ab-tests-in-wordpress/</feedburner:origLink></item>
		<item>
		<title>10 Questions To Help You Be A Better Designer, Developer, And Person</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/hDxPnFE450I/</link>
		<comments>http://www.travisberry.com/2010/02/10-questions-to-help-you-be-a-better-designer-developer-and-person/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:31:12 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=634</guid>
		<description><![CDATA[
One way to help improve your skills and your general well being is to take some time to reflect. Reflection time is when we create permanent memories and draw conclusions based on our lives. With out proper time to reflect, it can feel like your life is in a constant whirlwind. These ten questions are [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wordle.net/show/wrdl/519211/Shodoka_-_Song_of_Freedom" target="blank"><img src="http://www.travisberry.com/wp-content/uploads/2010/02/wordleteachings.jpg" alt="Image by Wordle" title="Image by Wordle" width="640" height="320" class="alignnone size-full wp-image-638" /></a><br />
One way to help improve your skills and your general well being is to take some time to reflect. Reflection time is when we create permanent memories and draw conclusions based on our lives. With out proper time to reflect, it can feel like your life is in a constant whirlwind. These ten questions are meant as a way to reflect on the way design and development impacts your life, and the way your life impacts the way you design and develop. Answering these questions can help bring clarity and focus to ones life.<span id="more-634"></span></p>
<ul>
<li>What parts of design, development, and life do you like?</li>
<li>How can I make the world around me a simpler and better place to live?</li>
<li>How does my artistic expressions affect those around me?</li>
<li>Is my design, or life, following trends or breaking new ground?</li>
<li>Do I place more value on the work of an individual or a group?</li>
<li>Where is design, development, and your life headed two stages from now? (i.e. not the next “trends” but the ones after that)</li>
<li>If you could design or develop something for one person, company, or concept, who or what would it be? Why? Is that person, company, or concept important to the way you live your life?</li>
<li>Is there an ethical boundary I use when determining who or what to work on? Where are your limits on being paid for work? Would you work with someone or something you are strongly opposed to if the money was right?</li>
<li>What do you see as the greatest moment of luck in you life? How can you repeat the success?</li>
<li>What is the number one thing holding you back from achieving your next goal?</li>
</ul>
<p>There are many questions I could continue to add. I think sticking with a moderate amount of questions each time you do an exercise like this is the best way to go. You will spend more time on each as opposed to feeling like you need to complete a giant list. This is supposed to be relaxing, not something that adds to the stress.</p>
<p>However, if you have a question you find yourself asking time and time again, let me know in the comments.</p>
<p><script>utmx_section("contactme2")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" alt="" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" class="avatar avatar-32 photo"></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</p>
</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=hDxPnFE450I:MwwgX7tnqoY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=hDxPnFE450I:MwwgX7tnqoY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=hDxPnFE450I:MwwgX7tnqoY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=hDxPnFE450I:MwwgX7tnqoY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=hDxPnFE450I:MwwgX7tnqoY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=hDxPnFE450I:MwwgX7tnqoY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/hDxPnFE450I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/02/10-questions-to-help-you-be-a-better-designer-developer-and-person/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisberry.com/2010/02/10-questions-to-help-you-be-a-better-designer-developer-and-person/</feedburner:origLink></item>
		<item>
		<title>10 Easy Solutions For Contact Forms</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/toJx65DyJE0/</link>
		<comments>http://www.travisberry.com/2010/02/10-easy-solutions-for-contact-forms/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 18:58:25 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=605</guid>
		<description><![CDATA[
Contact forms are an integral part of many websites. The construction of which can range from super simple to highly complex. As with most things, I prefer the easy solution. Here is a list of 10 contact form solutions that are super simple.

Contact Form 7
Are you looking for a contact form plugin for WordPress? If [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://content.travisberry.com/uploads/2010/02/contactformcap.jpg" alt="" title="contactformcap" width="640" height="320" class="alignnone size-full wp-image-604" /><br />
Contact forms are an integral part of many websites. The construction of which can range from super simple to highly complex. As with most things, I prefer the easy solution. Here is a list of 10 contact form solutions that are super simple.<span id="more-605"></span></p>
<hr style="color:#54452E;background-color:#54452E;border:1px solid;"/>
<a href="http://contactform7.com/" target="blank">Contact Form 7</a><br />
Are you looking for a contact form plugin for WordPress? If you value simplicity and flexibility, Contact Form 7 is a great choice. It allows you to flexibly design the form and mail. You can manage multiple contact forms as well.</p>
<p><a href="http://www.emailmeform.com/" target="blank">EmailMeForm</a><br />
Email Me Form is a free online form generator service that helps you create HTML forms for your website, with no programming required.</p>
<p><a href="http://wufoo.com/" target="blank">Wufoo</a><br />
Wufoo strives to be the easiest way to collect information over the Internet.</p>
<p><a href="http://www.deliciousdays.com/cforms-plugin/" target="blank">cforms</a><br />
cforms is a powerful and feature rich form plugin for Wordpress, offering convenient deployment of multiple Ajax driven contact forms throughout your blog or even on the same page.</p>
<p><a href="http://kontactr.com/" target="blank">Kontactr</a><br />
Kontactr is a one-click free contact form service. With Kontactr, you can fight against the amount of spam that you receive daily. Protect your email address by using our highly secure contact form. You can also use our simple tools to embed the form right into your own website. Everything is as easy as 1, 2, 3&#8230;</p>
<p><a href="http://www.formtools.org/" target="blank">Form Tools</a><br />
Form Tools is an extremely powerful, versatile form processor, storage and access script written in PHP and MySQL, designed to work with any existing web form. It creates a custom database table based on your form data to store all submissions from the form. </p>
<p><a href="http://dadamailproject.com/" target="blank">Dada Mail</a><br />
Dada Mail turns 10 in 2010. To celebrate, we&#8217;re giving never ending subscriptions to Pro Dada and the Dada Mail Manual for a low, low price:</p>
<p><a href="http://www.freedback.com/" target="blank">FreedBack</a><br />
Designed for people who want HTML forms without learning HTML. Try us out before you spend hours banging your head on your keyboard because you can&#8217;t get it to work. You have more important things to do with your time.</p>
<p><a href="http://www.freecontactform.com/" target="blank">FreeContactForm</a><br />
Looking for a quick no frills website contact form? our Lite version is available at no charge.</p>
<p><a href="http://www.roscripts.com/AJAX_contact_form-144.html" target="blank">Ajax Contact Form</a><br />
The advantage on mootools is that you don&#8217;t need to download the whole library just to have an ajax event or some other tiny effect. You just download what you need.</p>
<hr style="color:#54452E;background-color:#54452E;border:1px solid;"/>
<p>If I left your favorite contact form solution off the list, let me know in the comments.</p>
<p><script>utmx_section("contact1")</script>
<div id="contactme">
<div class="avatar"><img width="32" height="32" class="avatar avatar-32 photo" src="http://www.gravatar.com/avatar/c9e8248c1237949b66a735bed64ae841?s=32&amp;d=identicon&amp;r=G" alt=""></div>
<p>I&#8217;m just a guy interested in all things design and web related. You should <a href="http://www.travisberry.com/contact/">contact me</a> about about this article, for freelance work, or for any reason.</div>
<p></noscript></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=toJx65DyJE0:vzWh-IxlEzs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=toJx65DyJE0:vzWh-IxlEzs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=toJx65DyJE0:vzWh-IxlEzs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=toJx65DyJE0:vzWh-IxlEzs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=toJx65DyJE0:vzWh-IxlEzs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=toJx65DyJE0:vzWh-IxlEzs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/toJx65DyJE0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/02/10-easy-solutions-for-contact-forms/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.travisberry.com/2010/02/10-easy-solutions-for-contact-forms/</feedburner:origLink></item>
		<item>
		<title>Discussion Of A Hidden Wholeness</title>
		<link>http://feedproxy.google.com/~r/TravisBerry/~3/lMFLPcTN9VI/</link>
		<comments>http://www.travisberry.com/2010/02/discussion-of-a-hidden-wholeness/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 19:43:22 +0000</pubDate>
		<dc:creator>Travis Berry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.travisberry.com/?p=599</guid>
		<description><![CDATA[
I&#8217;m starting a new series of posts dealing with things I don&#8217;t really discuss on this blog. These posts are going to deal with “the self”. I feel these topics are important to discuss as artists and designers, as the more you know about your inner-self and philosophy of art, the better you can perform. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/35387868@N00/3482507564" target="blank"><img src="http://www.travisberry.com/wp-content/uploads/2010/02/fantasyworld.jpg" alt="" title="fantasyworld" width="640" height="320" class="alignnone size-full wp-image-598" /></a><br />
I&#8217;m starting a new series of posts dealing with things I don&#8217;t really discuss on this blog. These posts are going to deal with “the self”. I feel these topics are important to discuss as artists and designers, as the more you know about your inner-self and philosophy of art, the better you can perform. Plus I have to write about these topics for my Capstone class, so I figured if I can make them in to a good post, why not?<span id="more-599"></span></p>
<p>I&#8217;m going to kick this off with a post about “A Hidden Wholeness”. I have a few things I want to reflect on in the book &#8220;A Hidden Wholeness: The Journey Toward an Undivided Life&#8221; by Parker Palmer. The book deals with the journey to a whole self. The part I want to discuss revolves around the idea of the change between children and adults in terms of being able to navigate the hidden self and the public self.</p>
<p>First let me start by saying I&#8217;m not a huge fan of the book. I think the writing is a little drab and the author has a tendency to repeat himself numerous times. That aside, I feel the author does bring up several good points.</p>
<p>The author makes the argument that as children, we have an ability to commute between the person we are in public and the the hidden self that is closer to ones true self. As adults we tend to lose the hidden self all together and instead find ourselves longing for that missing “something”.</p>
<p>I agree that as adults we tend to lose our imagination and our ability to live in a fantasy world, but I tend to think that&#8217;s a good thing to an extent. At the very least the person needs to develop the ability to differentiate between the two. The thing I don&#8217;t agree with is the authors argument that as a kid, the hidden self is a harmless secret, where as adults the secret is considered a masked and armored self. I feel the description of the armored self, where people put on a facade for public and act as their true self in the privacy of their own homes, is essentially the same as a child who lives a fantasy life in the security of his bedroom.</p>
<p>On a side note I find it funny that in this book, the author argues the need to share more, but with the rise of social media, there is a giant increase in the amount of articles arguing we&#8217;re sharing too much.</p>
<p>To a certain extent, I think the author is more against dickheads, people who are not outgoing and friendly and generally are selfish people, then he is against people who have two versions of the self.</p>
<p>A best I feel the author is arguing that a persons ethics equals a whole self. One story the author brings up numerous times is about the a farmer who was working in government. The farmers has a choice between doing good for the land, or making money for corporations. The author claims that because the man decided he would rather save the land, he has somehow come closer to a whole self. I find that logic flawed. Sure he may have not compromised his ethics, but I don&#8217;t feel that makes him a more whole person than he would be otherwise. </p>
<p>I have mixed feelings about this whole book. I feel there are some good points to be made, but in the end there is something about it that feels hypocritical and preachy. Kind of like another famous book. I feel the author has generalized way too much and has attempted to boil a complex issue down to a black and white view. Something that is never easy to do.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/TravisBerry?a=lMFLPcTN9VI:wqwfEsdyJJE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=lMFLPcTN9VI:wqwfEsdyJJE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=lMFLPcTN9VI:wqwfEsdyJJE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=lMFLPcTN9VI:wqwfEsdyJJE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/TravisBerry?i=lMFLPcTN9VI:wqwfEsdyJJE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/TravisBerry?a=lMFLPcTN9VI:wqwfEsdyJJE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TravisBerry?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TravisBerry/~4/lMFLPcTN9VI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.travisberry.com/2010/02/discussion-of-a-hidden-wholeness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.travisberry.com/2010/02/discussion-of-a-hidden-wholeness/</feedburner:origLink></item>
	<media:rating>nonadult</media:rating></channel>
</rss><!-- Dynamic page generated in 0.684 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-06-22 07:40:10 --><!-- Compression = gzip -->
