<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A Path Less Taken &#187; Web Development</title>
	<atom:link href="http://www.legendrefamily.org/blog/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.legendrefamily.org/blog</link>
	<description>Breaking with convention in a very conventional fashion.</description>
	<lastBuildDate>Tue, 11 Oct 2011 03:19:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Tools of the Hobby</title>
		<link>http://www.legendrefamily.org/blog/2010/07/tools-of-the-hobby/</link>
		<comments>http://www.legendrefamily.org/blog/2010/07/tools-of-the-hobby/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 15:34:30 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=1212</guid>
		<description><![CDATA[Web development is a very common hobby. At least that&#8217;s what I keep telling myself. Whether it is or not, I&#8217;m a web developer. As such, I spend a fair amount of my spare time reading about web development, watching videos about web development and for sure doing web development. As I set out to [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Web development is a very common hobby.  At least that&#8217;s what I keep telling myself.  Whether it is or not, <span class="pullquote">I&#8217;m a web developer</span>.  As such, I spend a fair amount of my spare time reading about web development, watching videos about web development and for sure doing web development.  As I set out to install my development tools on my new computer I thought I would chronicle the process.  If you&#8217;re interested in setting up your own web development platform using mostly open source tools then read on and check out my approach.</p>
<p><span id="more-1212"></span></p>
<p>First of all I started with Windows 7 Professional 64 Bit Edition.  This is a great leap forward for me and I&#8217;m very excited to be on a 64 Bit platform.  Even if it is so 7 years ago.</p>
<p>Next comes my text editor.  I use the simple program <a href="http://www.scintilla.org/SciTE.html" title="SciTE">SciTE</a>.  I download the Window&#8217;s binaries in the ZIP file, put everything in the directory of my choice and add a short cut to the desktop.  I love the simple interface, multi-language support and just the general look and feel of the tool.</p>
<p>Right after my text editor I went for my MySQL editing tool.  There is only one solution here for me and that&#8217;s <a href="http://www.webyog.com/" title="SQLyog">SQLyog</a> Community edition by Webyog.  You have to go to the <a href="http://code.google.com/p/sqlyog/" title="SQLyog Project Site">SQLyog Project Site</a> to download the community edition.  If you need more functionality and can afford the upgrade I think you still can&#8217;t go wrong with this excellent product.  I&#8217;m a long time TOAD user when working with Oracle DB&#8217;s (I&#8217;ve used TOAD since before the Toadman sold it to Quest Software) and I&#8217;m equally dedicated to SQLyog on the MySQL side.  As of version 8.51 it is actually a cleaner and more appealing looking tool than TOAD!</p>
<p>Next came the environment tools.  To me the logical first choice was the MySQL database server.  I had hoped to deploy the much praised <a href="http://www.percona.com/software/" title="Percona">Percona</a> builds of MySQL, but the binaries for Windows 64 bit were not provided on their site.  I was not in the mood to compile my own so I went back to the trusty <a href="http://dev.mysql.com/downloads/mysql/" title="MySQL Community Edition">MySQL Community Edition</a>.  I downloaded the 64 bit MSI Installer Essentials and ran the installation on my computer.  If you want to take more control over the deployment I found a post titled <a href="http://www.webdevelopersnotes.com/how-do-i/install-mysql-windows-7.php" title="How to install MySQL on Windows 7">How to install MySQL on Windows 7</a> that provides some great guidance on the Windows installation of MySQL.  Migrating data to the new database for small to medium sized DB&#8217;s was a snap using SQLyog&#8217;s Tools >> &#8220;Backup Database As SQL Dump&#8230;&#8221; and Tools >> &#8220;Restore From SQL Dump&#8230;&#8221;  The commercial versions of SQLyog offer even more powerful features to accomplish this.</p>
<p>Next I added the <a href="http://httpd.apache.org/" title="Apache HTTP Server">Apache HTTP Server</a>.  I checked the web site and I could not find a 64 bit build of the windows binaries.  A quick web search indicated that there was not one available for Apache or PHP.  I downloaded the 32 bit version 2.2.15 with OpenSSL Windows MSI installer and ran the installation.  I changed the directory to c:\apache\ since I&#8217;m updating web pages often and I want them to be easy to navigate to.  Once the installation was complete a quick test demonstrated it was working.</p>
<p>Now it was time for <a href="http://php.net/" title="PHP">PHP</a>.  I&#8217;ve played with a number of scripting languages, but for the moment I&#8217;m still using PHP as my primary language.  Yes, scripting solutions are slower than pre-compiled (Java) or compiled (.NET) languages.  The trade off is that scripting languages provide nimbleness of development and for me as an amateur developer that is the most important aspect at the moment.  Like Apache I could not get 64 bit Windows binaries for PHP so I had to settle with the 32 bit version 5.3.2.  I ran the MSI installer, changed the directory to c:\php\ and chose Apache 2.2 as the web server.  The first test of restarting the Apache HTTP server failed so I had to go into the php.ini file and comment out some of the extensions that were missing dependencies (like Oracle).  Once I did that it worked as expected.</p>
<p>The latest edition to my development toolbox is <a href="http://memcached.org/" title="Memcached">Memcached</a>.  Memcached is a high performance, distributed memory object caching system.  This is interesting to me since I&#8217;m working on establishing a re-usable authentication (token based) and authorization system and repeated queries to MySQL would simply be non-performing at any material scale.  I downloaded the Windows binaries for memcached from <a href="http://code.jellycan.com/memcached/" title="Jellycan Code | memcached">Jellycan Code | memcached</a>.  Thanks!  Then I found this great post titled <a href="http://pureform.wordpress.com/2008/01/10/installing-memcache-on-windows-for-php/" title="Installing Memcache On Windows For PHP">Installing Memcache On Windows For PHP</a> which was a big help.  I followed the link to <a href="http://downloads.php.net/pierre/">here</a> to get the cvs 5.3 version of the PHP extension for memcache, copied the file to my ext folder and added the appropriate line to the php.ini file.  Apache restarted as expected.  Then I threw together some test code and it worked on the first try.  I&#8217;m super excited to <span class="pullquote">add memcached to my architecture stack</span> and look forward to using it in some very cool ways to speed up my applications.</p>
<p>There are two other tools that I&#8217;m going to add as needed.  One I&#8217;ve used before and one is a new addition to finally give me a place to play with some Linux OS&#8217;s.  They are:</p>
<ul>
<li><a href="http://www.gimp.org/" title="GIMP">GIMP</a> &#8211;  The GNU Image Manipulation Program.  GIMP is a great open source alternative for editing photos and icons for your website.</li>
<li><a href="http://www.virtualbox.org/" title="VirtualBox">VirtualBox</a> &#8211; A freely available open source x86 and AMD64/Intel64 virtualization product for enterprise and home use.</li>
</ul>
<p>So that&#8217;s it.  My initial build of a development platform on my new rig.  I&#8217;m very excited to get back to work on my projects and I&#8217;m looking forward to all the power that I have at my disposal.  If you have a favorite web development set up please post a comment below and share it with me.</p>
<p>Peace</p>
<div class="shr-publisher-1212"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F07%2Ftools-of-the-hobby%2F' data-shr_title='Tools+of+the+Hobby'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F07%2Ftools-of-the-hobby%2F' data-shr_title='Tools+of+the+Hobby'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/07/tools-of-the-hobby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SmugMug Architecture</title>
		<link>http://www.legendrefamily.org/blog/2010/06/smugmug-architecture/</link>
		<comments>http://www.legendrefamily.org/blog/2010/06/smugmug-architecture/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 04:27:33 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[percona]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=1188</guid>
		<description><![CDATA[SmugMug Photo Sharing and Video Sharing is a private and long term profitable Premium only commercial web site. Don MacAskill, the CEO of SmugMug, gave the keynote speech at a MySQL conference. Don posted the video of his speech on his blog. He is talking about the Percona builds of MySQL which is what I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://www.smugmug.com/" title="SmugMug">SmugMug Photo Sharing and Video Sharing</a> is a private and long term profitable Premium only commercial web site.  Don MacAskill, the CEO of SmugMug, gave the keynote speech at a MySQL conference.  Don posted the <a href="http://don.blogs.smugmug.com/2010/04/15/my-mysql-keynote-slides-and-video/" title="Don Keynote Speech">video of his speech</a> on his blog.  He is talking about the Percona builds of MySQL which is what I&#8217;m planning to deploy so I was eager to watch his presentation.  It is a great summary of the architecture of SmugMug and the problems they are working to solve around MySQL.  If you have an interest in web solution architectures you should absolutely check it out.</p>
<div class="shr-publisher-1188"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Fsmugmug-architecture%2F' data-shr_title='SmugMug+Architecture'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Fsmugmug-architecture%2F' data-shr_title='SmugMug+Architecture'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/06/smugmug-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RabbitMQ</title>
		<link>http://www.legendrefamily.org/blog/2010/06/rabbitmq/</link>
		<comments>http://www.legendrefamily.org/blog/2010/06/rabbitmq/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 04:50:12 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[messaging]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=1143</guid>
		<description><![CDATA[Today I watched the video of Steve Huffman who is a co-founder of reddit.com. You can catch the video here if you are interested in Steve&#8217;s perspective on &#8220;Lessons learned while at reddit.com.&#8221; He mentions several interesting technologies, but the one that got my attention was RabbitMQ. This could be because I named the first [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Today I watched the video of Steve Huffman who is a co-founder of reddit.com.  You can catch the video <a href="http://vimeo.com/channels/carsonifiedtv#10506751">here</a> if you are interested in Steve&#8217;s perspective on &#8220;Lessons learned while at reddit.com.&#8221;  He mentions several interesting technologies, but the one that got my attention was <a href="http://www.rabbitmq.com/" title="RabbitMQ">RabbitMQ</a>.  This could be because I named the first web engine I ever built Rabbit, but it&#8217;s more likely because I liked the idea of a message queue to speed up processing user requests.  If you are building sites for scalability and performance you should look into messaging as a viable strategy to reduce user wait time.</p>
<div class="shr-publisher-1143"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Frabbitmq%2F' data-shr_title='RabbitMQ'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Frabbitmq%2F' data-shr_title='RabbitMQ'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/06/rabbitmq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Favorite WordPress Plugins Revisited</title>
		<link>http://www.legendrefamily.org/blog/2010/06/my-favorite-wordpress-plugins-revisited/</link>
		<comments>http://www.legendrefamily.org/blog/2010/06/my-favorite-wordpress-plugins-revisited/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 03:27:02 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[wordpress plugins]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=1106</guid>
		<description><![CDATA[WordPress is a great blogging platform, but out of the box there are many neat things that it does not do. Enter WordPress Plugins to close the functionality gap and make for happy users. This list is a revisiting of my favorite WordPress plugins. All of those listed are ones that I take advantage of [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>WordPress is a great blogging platform, but out of the box there are many neat things that it does not do.  Enter WordPress Plugins to close the functionality gap and make for happy users.  This list is a revisiting of my favorite WordPress plugins.  All of those listed are ones that I take advantage of on my blog.  Here is the short and sweet list.</p>
<ul>
<li><a href="http://akismet.com/" title="Akismet">Akismet</a> &#8211; A spam blocker that traps comment spam and traceback spam before it gets published to your blog.</li>
<li><a href="http://www.bad-behavior.ioerror.us/" title="Bad Behavior">Bad Behavior</a> &#8211; A link spam blocker.  I run both Bad Behavior and Akismet because I despise link spam bots.</li>
<li><strong>Browser Detection</strong> &#8211; This plugin was created by me to do simple browser detection.  The code was mainly taken from the web, but I have been unsuccessful thus far at finding the original author or site so I could provide proper credit.</li>
<li><a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/" title="Google XML Sitemaps">Google XML Sitemaps</a> &#8211; This plugin updates major search engines to new entries on your blog.  If you are ready to get serious about SEO this is the tool to start with.</li>
<li><a href="http://striderweb.com/nerdaphernalia/features/wp-javascript-pull-quotes/" title="Graceful Pull-Quotes">Graceful Pull-Quotes</a> &#8211; Pull Quotes are a great way to add professional polish to your blog.  This plugin is super easy to use to get your pull-quotes going.</li>
<li><a href="http://sexybookmarks.shareaholic.com/" title="SexyBookmarks">SexyBookmarks</a> &#8211; My newest plugin addition.  Sexy Bookmarks allows you to easily add Social Bookmarking Icons to each post.</li>
<li><a href="http://wordpress.org/extend/plugins/wp-syntax/" title="WP-Syntax">WP-Syntax</a> &#8211; Powerful syntax highlighting using GeSHi.</li>
</ul>
<p>Although that&#8217;s all the plugins I use, there are hundreds of useful plugins available for you to try.  If you are still interested in other great plugins you should read the blog post <a href="http://carsonified.com/blog/dev/20-must-have-wordpress-plugins-for-every-website/" title="20 Must Have WordPress Plugins for Every Website">20 Must Have WordPress Plugins for Every Website</a> by Amber Weinberg.  This is a pretty good list to give you an idea of the amazing variety of plugins available for WordPress</p>
<p>Enjoy</p>
<div class="shr-publisher-1106"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Fmy-favorite-wordpress-plugins-revisited%2F' data-shr_title='My+Favorite+WordPress+Plugins+Revisited'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Fmy-favorite-wordpress-plugins-revisited%2F' data-shr_title='My+Favorite+WordPress+Plugins+Revisited'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/06/my-favorite-wordpress-plugins-revisited/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Interesting Python ORM</title>
		<link>http://www.legendrefamily.org/blog/2010/06/interesting-python-orm/</link>
		<comments>http://www.legendrefamily.org/blog/2010/06/interesting-python-orm/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 00:55:40 +0000</pubDate>
		<dc:creator>JJ</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.legendrefamily.org/blog/?p=1100</guid>
		<description><![CDATA[I&#8217;m not an active Python developer at the moment, but I have been searching far and wide on the web for ORM solutions that might interest me. One Python based ORM which struck me as really interesting is SQLAlchemy. If you are interested in trying an ORM tool and you read the description on SQLAlchemy&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I&#8217;m not an active Python developer at the moment, but I have been searching far and wide on the web for ORM solutions that might interest me.  One Python based ORM which struck me as really interesting is <a href="http://www.sqlalchemy.org/" title="SQLAlchemy">SQLAlchemy</a>.  If you are interested in trying an ORM tool and you read the description on SQLAlchemy&#8217;s home page you would swear you had died and gone to ORM heaven!  If this solution actually accomplishes what it claims then it could be a very interesting choice.  I did not find a PHP port so I&#8217;ll have to keep looking for another PHP ORM that I&#8217;m interested in trying.  Sigh.</p>
<div class="shr-publisher-1100"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Finteresting-python-orm%2F' data-shr_title='Interesting+Python+ORM'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.legendrefamily.org%2Fblog%2F2010%2F06%2Finteresting-python-orm%2F' data-shr_title='Interesting+Python+ORM'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.legendrefamily.org/blog/2010/06/interesting-python-orm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

