<?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>HelpSpa &#187; Web Development</title>
	<atom:link href="http://helpspa.com/category/web_development/feed/" rel="self" type="application/rss+xml" />
	<link>http://helpspa.com</link>
	<description>Computer Advice, Help. and Video Tutorials</description>
	<lastBuildDate>Thu, 12 Jan 2012 03:18:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Macs No Longer Ship with Flash Installed.  Adobe Drops Mobile Flash. Is the End of Flash Near?</title>
		<link>http://helpspa.com/web_development/mac-no-longer-ship-with-flash-installed-is-the-end-of-flash-near/</link>
		<comments>http://helpspa.com/web_development/mac-no-longer-ship-with-flash-installed-is-the-end-of-flash-near/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 18:23:20 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2787</guid>
		<description><![CDATA[Mac no longer are going to be shipped with Flash installed and Adobe announced it&#8217;s no longer going to develop Flash for mobile platforms.  Does this spell the end for Flash? Maybe.  But not so fast&#8230; Flash is Ubiquitous&#8230; &#8230;but only on PCs.  And while Flash has an unbeatable share on the Windows platform, how [...]]]></description>
			<content:encoded><![CDATA[<p>Mac no longer are going to be shipped with Flash installed and Adobe announced it&#8217;s no longer going to develop Flash for mobile platforms.  Does this spell the end for Flash? Maybe.  But not so fast&#8230;</p>
<h3>Flash is Ubiquitous&#8230;</h3>
<p>&#8230;but only on PCs.  And while Flash has an unbeatable share on the Windows platform, how long is it going to be until developers decide to find an alternative way to code their websites or applications so that they don&#8217;t have to do so twice?  We are already seeing a small erosion of Flash, IMHO, because iPhones and iPad simply don&#8217;t support the plugin. Now that Macs aren&#8217;t going to be shipped with Flash, it makes getting people to Flash content every so slightly more difficult.</p>
<h3>What to Do?</h3>
<p><span id="more-2787"></span></p>
<p>In planning for the future I don&#8217;t think Flash will dissappear anytime soon.  But I do think over time we will start to see Flash replaced by HTML5 and other technology that will render across all devices.   So I will tell you what I tell my clients at least when it comes to website development.  Because Apple devices are basically going to be Flash-free, it&#8217;s critical that any important website content such as main navigation and contact information are displayed in an alternative format.</p>
<h3>Conclusion</h3>
<p>Flash is awesome for making a website interactive.  But with a host of other excellent tools already available and coming down the pipe, I have a hard time thinking that much new development is going to be done for Flash simply due to the fact that mobile devices will no longer support the product.  If Adobe won&#8217;t back Flash on the mobile platform, developers are going to find other ways to get things done.  So does this spell the end of Flash?  Yes. In the future.  But not anytime soon.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/mac-no-longer-ship-with-flash-installed-is-the-end-of-flash-near/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Find a List of WordPress Category IDs &#8211; 2011 &#8211; in under 5 minutes!</title>
		<link>http://helpspa.com/featured-articles/how-to-find-the-list-of-wordpress-category-ids-2011-in-under-5-minutes/</link>
		<comments>http://helpspa.com/featured-articles/how-to-find-the-list-of-wordpress-category-ids-2011-in-under-5-minutes/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 17:39:15 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2647</guid>
		<description><![CDATA[There are a lot of way out there to try to find a list of the WordPress category IDs, but sometimes a simple, barebones approach is the easiest way.  Let&#8217;s take a look at how to find your WordPress category ID&#8217;s in around 5 minutes. A. Get into phpMyAdmin 1. If you are running WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of way out there to try to find a list of the WordPress category IDs, but sometimes a simple, barebones approach is the easiest way.  Let&#8217;s take a look at how to find your WordPress category ID&#8217;s in around 5 minutes.</p>
<p><strong>A. Get into phpMyAdmin</strong></p>
<p>1. If you are running WordPress then you have a database, and thus you have a way to access your database.  For most of us this method is by using phpMyAdmin.  If you are using cPanel then simply navigate to phpMyAdmin.   If you are using  a different control panel, ask you hosting provider.</p>
<p><strong>B. Find the WordPress Table that Lists the Category IDs</strong></p>
<p>2. Once you are in phpMyAdmin (or your database browsing client), look for your WordPress database.  It&#8217;s the database you created when you first installed WordPress (and if you didn&#8217;t install WP on your own, look for a database that starts with &#8220;WP&#8221; or has &#8220;WP&#8221; in it.</p>
<p><span id="more-2647"></span></p>
<p>3. Click on this database name and you will now see a list of tables on the left side of the screen (in phpMyAdmin).  The picture below shows the list (with my DB name blurred out):</p>
<p><a href="http://helpspa.com/wp-content/uploads/2011/10/wp_cat_1.gif"><img class="alignnone size-full wp-image-2648" title="wp_cat_1" src="http://helpspa.com/wp-content/uploads/2011/10/wp_cat_1.gif" alt="" width="248" height="376" /></a></p>
<p>4. Click on the &#8220;wp_terms&#8221; table.  You will see the tabs on the right side of the frame change and you will see some information about the table.  What you want to do now is to select the &#8220;Browse&#8221; tab at the top of the screen.</p>
<p><a href="http://helpspa.com/wp-content/uploads/2011/10/wp_cat_2.gif"><img class="alignnone size-full wp-image-2649" title="wp_cat_2" src="http://helpspa.com/wp-content/uploads/2011/10/wp_cat_2.gif" alt="" width="456" height="145" /></a></p>
<p>5. You will now see a list of your WordPress categories along with the category IDs.</p>
<p><strong>C. Print the List of WordPress Category IDs</strong></p>
<p>6. At this point you can print the screen (or even better), export the list to Excel.  To export the category ID list to Excel, go back to the top of the screen where the tabs are and click &#8220;Export&#8221;.</p>
<p>7.  On the export screen, click &#8220;CSV for Excel&#8221; (or whatever file format you want).</p>
<p><a href="http://helpspa.com/wp-content/uploads/2011/10/wp_cat_3.gif"><img class="alignnone size-full wp-image-2654" title="wp_cat_3" src="http://helpspa.com/wp-content/uploads/2011/10/wp_cat_3.gif" alt="" width="402" height="326" /></a></p>
<p>Also make sure &#8220;save to file&#8221; is clicked.  Then click &#8220;Go&#8221; to start the download.</p>
<p>You are now the proud owner of a list of your WordPress Category IDs&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/featured-articles/how-to-find-the-list-of-wordpress-category-ids-2011-in-under-5-minutes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Select a Single page with a CSS ID in Dreamweaver with a .DWT template.</title>
		<link>http://helpspa.com/web_development/dreamweaver/how-to-select-a-single-page-with-a-css-id-in-dreamweaver-with-a-dwt-template/</link>
		<comments>http://helpspa.com/web_development/dreamweaver/how-to-select-a-single-page-with-a-css-id-in-dreamweaver-with-a-dwt-template/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 02:45:22 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[Dreamweaver]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2534</guid>
		<description><![CDATA[Those of us familiar with Dreamweaver .DWT template files know their tremendous advantages, and their limitations.  One of the difficulties with .DWT templates is that once you&#8217;ve setup a website using .DWTs, it can be difficult to pick out a single page based on a CSS ID tag.  People often use an ID attached to [...]]]></description>
			<content:encoded><![CDATA[<p>Those of us familiar with Dreamweaver .DWT template files know their tremendous advantages, and their limitations.  One of the difficulties with .DWT templates is that once you&#8217;ve setup a website using .DWTs, it can be difficult to pick out a single page based on a CSS ID tag.  People often use an ID attached to a &lt;body&gt; tag in order to be able to select and manipulate an individual page for a particular purpose; but with .DWT&#8221;s, you can&#8217;t make different ID&#8217;s on the body tag.</p>
<p><strong>The Solution is an Editable Header and &lt;head&gt; Tag.</strong></p>
<p>While your &lt;body&gt; tag is likely consumed by the template, it&#8217;s very likely that your &lt;head&gt; tag has editable regions.  If you are adding any kind of meta tags, you will have an editable &lt;head&gt; tag.  So in order to take advantage of the &lt;head&gt; tag, simply add a &lt;style&gt; tag to the &lt;head&gt; area of the page in question, and you can then manipulate the CSS to your needs.</p>
<p><strong>Let&#8217;s Look at An Example.</strong></p>
<p>For example, let&#8217;s say you have an image with the ID &#8220;myImage&#8221; you want to display on every page on the website except for the &#8220;contact&#8221; page.   Go ahead and add the image to the .DWT so that the image code propagates to all of your pages.  Now in order to remove the image from the contact page, simply open up the contact page and add the following code within the header tag:</p>
<pre class="brush: html">

&lt;style type=&quot;text/css&quot;&gt;
#myImage {
display: none; }
&lt;/style&gt;
</pre>
<p>What will happen is that the page will render and read the site&#8217;s main .css file.  The browser will then read the above style code that you put in the &lt;head&gt; tag, which will override the site&#8217;s global stylesheet.  In this manner, the image with the myImage tag will now be hidden on the contact page.</p>
<p><strong>Summary</strong></p>
<p>In order to apply  CSS code to  individual pages using Dreamweaver and .DWT templates, simply add a &lt;style&gt; tag with your overriding CSS code to the &lt;head&gt; tag of the page in question.</p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/dreamweaver/how-to-select-a-single-page-with-a-css-id-in-dreamweaver-with-a-dwt-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Add Google Analytics Tracking Code to your WordPress Blog</title>
		<link>http://helpspa.com/web_development/wordpress/how-to-add-google-analytics-tracking-code-to-your-wordpress-blog/</link>
		<comments>http://helpspa.com/web_development/wordpress/how-to-add-google-analytics-tracking-code-to-your-wordpress-blog/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 21:48:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=3</guid>
		<description><![CDATA[One of the most important features for your WordPress Blog (and almost any web site for that matter) is being able to track and analyze your site’s analytics (statistics).  Adding the free Google Analytics code is easy to do and will take around 10 minutes.  These steps assume you already have a Google Account and [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most important features for your WordPress Blog (and almost any web site for that matter) is being able to track and analyze your site’s analytics (statistics).  Adding the free Google Analytics code is easy to do and will take around 10 minutes.  These steps assume you already have a Google Account and a Google Analytics account.</p>
<p>1.  Find      the footer.php file for your wordpresss theme.  This file is usually located at:  <code>/wp-content/themes/[your theme name]/footer.php</code></p>
<p class="note">Note:  I generally do NOT work on the live server copy of any file, as you can make your site stop functioning if you make a mistake.  I prefer to download a working copy of the file from the live site to my local machine, make the changes, and then upload the file back up to the server.  If it’s a critical file you are editing (such as .htacces), I recommend making a backup copy locally as well prior to making any changes.  This way you have a working copy if for some reason the file you upload doesn’t function as expected.</p>
<p>Head to the bottom of this file in your favorite text editor or HTML editor like Dreamweaver and find the &lt;/body&gt; tag as illustrated below:</p>
<p><img class="size-medium wp-image-5 alignnone" style="border: 0pt none;" title="addAnalytics-1" src="http://helpspa.com/wp-content/uploads/2009/10/addAnalytics-1-300x213.gif" alt="addAnalytics-1" width="300" height="213" /></p>
<p>3.  I like to mark the area with HTML comments so that later on when I’m looking at the code I can easily see where the Analytics code starts and ends.  In the image below I’ve added HTML comments to demarcate the start and end of the analytics code section <strong>(Note: in the pictures below I wrote  &#8221;AdSense&#8221; instead of &#8220;Anayltics&#8221; &#8212; but the concept is the same  &#8211; you can also  make comments for the position of your AdSense code this way, too).</strong></p>
<p><img class="size-medium wp-image-7 alignnone" title="addAnalytics-2" src="http://helpspa.com/wp-content/uploads/2009/10/addAnalytics-2-300x231.gif" alt="addAnalytics-2" width="300" height="231" /></p>
<p>4.  Now      it’s time to add the actual analytics code.  Go back to  your Google Analytics account and select Analytics Settings.  You will see a list of site profiles.  For the profile you wish yo use, select Edit in the Actions column.  This will take you to the profile page.  On the profile page the one for the website you are working on (there will be only one if you&#8217;ve only created one profile) click the check status link.  You will then be taken to a page that will give you the analytics code to add for your site.</p>
<p><img class="alignnone size-full wp-image-37" title="addAnalytics-4" src="http://helpspa.com/wp-content/uploads/2009/10/addAnalytics-411.gif" alt="addAnalytics-4" width="390" height="461" /></p>
<p>5.  Now let’s go back to our footer.php page and paste this code into the space we marked off with our HTML comments.</p>
<p><img class="alignnone size-full wp-image-8" title="addAnalytics-3" src="http://helpspa.com/wp-content/uploads/2009/10/addAnalytics-31.gif" alt="addAnalytics-3" width="475" height="276" /></p>
<p>6.  Now      upload the file back to the server.       Go back to your Google Analytics account and click ”edit&#8221; next to the site profile.   If all is working well      you should see, at the top right of the next page:</p>
<p><img class="alignnone size-full wp-image-2275" style="border: 1px solid black;" title="ga_status" src="http://helpspa.com/wp-content/uploads/2011/04/ga_status.gif" alt="ga_status" width="236" height="59" /> Note that it make take around an hour before you see that Google Analytics is correctly receiving data.  In one case it took almost two days for one of my sites to reflect that data was in fact being collected.  Just make sure that when you add the code that you have copied and pasted everything correctly.</p>
<p>So that&#8217;s all you have to do.  Happy tracking!</p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/wordpress/how-to-add-google-analytics-tracking-code-to-your-wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SMF vs. Vanilla vs bbPress &#8211; A Quick Look</title>
		<link>http://helpspa.com/web_development/smf-vs-vanilla-vs-bbpress-a-quick-look/</link>
		<comments>http://helpspa.com/web_development/smf-vs-vanilla-vs-bbpress-a-quick-look/#comments</comments>
		<pubDate>Sun, 03 Apr 2011 05:09:05 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2246</guid>
		<description><![CDATA[Recently I was looking to add a forum to a website of mine (www.classicalweekly.com). In the past I&#8217;ve used vBulletin and phpBB but I didn&#8217;t want to use either in this case. Briefly, I was a vBulletin customer but I was not happy with the way they handled their upgrade to VB4 in regards to [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I was looking to add a forum to a website of mine (www.classicalweekly.com).  In the past I&#8217;ve used vBulletin and phpBB but I didn&#8217;t want to use either in this case.  Briefly, I was a vBulletin customer but I was not happy with the way they handled their upgrade to VB4 in regards to how they treated their existing VB3 customers. And while I&#8217;ve had success getting phpBB to do what I wanted it to do, I find customizing and maintaining phpBB to be a bit of a bear.  So I took a quick look at Vanilla, bbPress and SMF. Here, quickly, is what I found:</p>
<p><strong>Vanilla:</strong><br />
I like the fact that you can embed the forum on a page (e.g on a page within your blog) and I like that you have the flexibility of changing what your home page will look like to visitors (e.g. category list, discussion list).  But I had the following problems:<br />
- It is very difficult to get email to work and to test if your email is working (e.g. to have the system email you when someone registers).  One could argue that it&#8217;s my server settings, but with a different board installed, emailing worked find with no additional configuration.<br />
-At the current time I couldn&#8217;t find any stable plugins for spam prevention.  Such a plugin, IMHO, is critical.<br />
-Vanilla does an interesting job of having a social-network like profile.  Unfortunately I couldn&#8217;t find any way to limit the display of this information to registered users only.</p>
<p>Overall I think Vanilla is on a great course and with some time and improvement, will be a great product.</p>
<p><strong>bbPress</strong><br />
I&#8217;ve heard a lot about bbPress over the years and I figured I&#8217;d try the board.  Installation was easy but after that I didn&#8217;t find bbPress to be too powerful. Emailing was functional right out of the box, and there is a human-anti-spam plugin that people do seem to like.</p>
<p>The major issue I had with bbPress, other than the very limited # of available plugins, was the lack of an ability to adjust forum permissions.  On almost every board I&#8217;ve every worked with, having some control over forum access has been critical.  For example, I don&#8217;t want people posting in my &#8220;Rules and Announcements&#8221; forum and I do sometimes like to limit posting in certain forums to certain types of users (e.g. having premium forums).  </p>
<p>So while bbPress was a breeze to get up and running, I didn&#8217;t find it had what I needed out of the box.  And while I know that there are some large websites running their forums on bbPress, I just don&#8217;t have the coding team in place that I need to get bbPress where I need it to be.</p>
<p><strong>SMF</strong><br />
I&#8217;d only dabbled in SMF before, but I finally installed it and so far I&#8217;m happy.  There is an anti-spam plugin and you are able to create specific forum permissions.  Of the threee products mentioned here I find SMF closest to vBulletin and phpBB in terms of robustness and configuration options.  You have the option of easily customizing the registration text, and I also like the features.</p>
<p>So at this point, in comparing these three products, I found SMF to be my choice at this time.  </p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/smf-vs-vanilla-vs-bbpress-a-quick-look/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Defensio Anti Spam &#8211; A Top Anti Spam Plugin for WordPress</title>
		<link>http://helpspa.com/web_development/wordpress/defensio-anti-spam-a-top-anti-spam-plugin-for-wordpress/</link>
		<comments>http://helpspa.com/web_development/wordpress/defensio-anti-spam-a-top-anti-spam-plugin-for-wordpress/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 17:22:56 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2239</guid>
		<description><![CDATA[I was looking for a free anti-spam Akismet replacement plugin for WordPress and I came across Defensio. I run multiple WordPress blogs and I needed a reliable and accurate (and easy to use) anti-comment-spam plugin.  I&#8217;ve been running Defensio for around a month now on a few sites and I must say that I&#8217;ve been [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking for a free anti-spam Akismet replacement plugin for WordPress and I came across <a href="http://defensio.com/">Defensio</a>.  I run multiple WordPress blogs and I needed a reliable and accurate  (and easy to use) anti-comment-spam plugin.  I&#8217;ve been running Defensio  for around a month now on a few sites and I must say that I&#8217;ve been  extremely pleased.  The amount of wordpress comment spam has dropped to  practically a trickle (if that) and the false positive rate is very low.  The  setup of the plugin is easy, and you administer your profile from their  website.  On their website you will be able to add more sites, and also  see your statistics. Their pricing is tiered &#8212; but their free plan is  extremely generous and gives you a ton of leeway to grow your site.  So I give a thumbs up to Defensio as an anti-spam plugin for wordpress.   It&#8217;s easy to install,  easy to configure, and most importantly&#8230;it works!</p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/wordpress/defensio-anti-spam-a-top-anti-spam-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4 &#8211; A Review of SmartSVN–A GUI Subversion Client for Windows</title>
		<link>http://helpspa.com/web_development/4-a-review-of-smartsvn-a-gui-subversion-client-for-windows/</link>
		<comments>http://helpspa.com/web_development/4-a-review-of-smartsvn-a-gui-subversion-client-for-windows/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 21:09:32 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2110</guid>
		<description><![CDATA[This article is the third in a series of guides about my experiences using Subversion (svn) for Web Development. These are the articles in the series: 1. A Desktop-Laptop Solution for Web Developers – Using Subversion to Co-Exist (this article) 2. What is Subversion and How Does it Help in the Web Design and Development [...]]]></description>
			<content:encoded><![CDATA[<p>This article is the third  in a series of guides about my experiences  using Subversion (svn) for Web Development.  These are the articles in the series:</p>
<p>1. <a href="http://helpspa.com/web_development/subversion/a-desktop-laptop-solution-for-web-developers-using-subversion-to-co-exist/">A Desktop-Laptop Solution for Web Developers – Using Subversion to Co-Exist (this article)</a><br />
2. <a href="http://helpspa.com/web_development/what-is-subversion-and-how-does-it-help-in-the-web-design-and-development-process/ ">What is Subversion and How Does it Help in the Web Design and Development Process?</a><br />
3. <a href="http://helpspa.com/web_development/a-subversion-workflow-for-web-developers-and-web-development-using-dreamweaver/">A Subversion Workflow for Web Developers and Web Development</a><br />
4.<strong> A Review of SmartSVN – a GUI Subversion client for Windows (this article)</strong><br />
5.  A Quick Review of Online Options for Hosted Subversion for Web Developers<br />
6. <a href="http://helpspa.com/web_development/assembla-review-the-best-free-subversion-hosting/">A Brief Review of Assemmbla, an Online Subversion Hosting Company.</a></p>
<p>Being new to Subversion and especially with using it in a web development workflow with Dreamweaver, I wanted to make the most of SVN but without having to deal with the command-line.  Generally speaking there are three major ways to go about using SVN.</p>
<p>1) command line &#8211; it&#8217;s great for those who use it but as a novice this wasn&#8217;t an option for me so  I won&#8217;t discuss it further here.</p>
<p>2) TortoiseSVN</p>
<p>3) GUI Subversion client such as SmartSVN.</p>
<p><strong>TortoiseSVN</strong> is a free option and it basically adds the SVN command set to the right-click menu.  While I find this helpful now (after having been using SVN for a while), in the beginning I found TortoiseSVN a little confusing.  The truth is that there really isn&#8217;t anything confusing about TortoiseSVN &#8212; but it takes a decent understanding of subversion and how it works in order (at least for me) to be comfortable with TortoiseSVN.</p>
<p><strong>SmartSVN &#8211; a Subverion GUI Client for Windows.</strong></p>
<p>So wanting to reap the benefits of SVN without having to worry about the implementation and interface I started looking for a GUI for Windows and I came across <a href="http://www.syntevo.com/smartsvn/index.html">SmartSVN</a>.  The best way to show you how SmartSVN works (and how easy it is to use) is by going through my sample subversion web design workflow showing you screenshots along the way.  Note that SmartSVN comes in two flavors, a free Foundation Edition and a paid Professional Edition at very reasonable $79.  I will be using the Professional Edition for the examples below, and you can download a <a href="http://www.syntevo.com/smartsvn/download.html">free trial edition</a> to evaluate the Professional Edition.</p>
<p><em><strong>Note that in this review I used screenshots from an actual production workflow, so some of the client information and server information is blurred out. </strong></em></p>
<p>Let&#8217;s assume you already have a subversion server setup somewhere and you&#8217;ve already created a repository.  One of the best things about SmartSVN is that it lets you immediately decide if you want to go directly into a Subversion project or if you want to browse a repository:</p>
<p><img class="alignnone size-full wp-image-2115" title="smart_proj_repo" src="http://helpspa.com/wp-content/uploads/2011/01/smart_proj_repo.jpg" alt="smart_proj_repo" width="304" height="250" /></p>
<p>In this example I&#8217;m going to want to work on a specific project so I&#8217;ll go to the &#8220;New Project Window&#8221; option &#8212; which will let me select from the projects I&#8217;ve already setup, or setup a new project.</p>
<p><img class="alignnone size-full wp-image-2114" title="smart_proj_options" src="http://helpspa.com/wp-content/uploads/2011/01/smart_proj_options.jpg" alt="smart_proj_options" width="547" height="254" /></p>
<p>Because I&#8217;m going to work on an existing project, I&#8217;ll select one of the projects I already have listed [not shown] under the &#8220;Open existing project(s)&#8221; option.</p>
<p>Once you have selected a project (or created a new one) you are presented with the main SmartSVN screen.  Here is where you will control your interaction with your SVN server/repository.  You will have a tree-like view on the top left, a working area on the top right, a command output area on the bottom left, and a transaction list on the bottom right.</p>
<p>So now let&#8217;s assume that I went into Dreamweaver and made some changes to the files in my website.  SmartSVN will show you what files have changed (and you can easily sort to see what&#8217;s changed and what hasn&#8217;t):</p>
<p><img class="alignnone size-full wp-image-2113" title="smart_modList" src="http://helpspa.com/wp-content/uploads/2011/01/smart_modList.jpg" alt="smart_modList" width="347" height="175" /></p>
<p>Note the revision number, the state &#8220;modified&#8221; and the path on the right side of the screenshot.  SmartSVN can also help you see if you&#8217;ve added any files that are not yet versioned:</p>
<p><img class="alignnone size-full wp-image-2121" title="smart_unversioned" src="http://helpspa.com/wp-content/uploads/2011/01/smart_unversioned.jpg" alt="smart_unversioned" width="626" height="202" /></p>
<p>Because I don&#8217;t want to keep track of the dwsync.xml files, you can easily have SmartSVN ignore these files (an option in the main menu bar on top or an option in the right-click menu). But if you did want to add these files, you can also easily do so quickly.</p>
<p>So now that I&#8217;ve made a few changes, ignored a few and added a file or two, I&#8217;m ready to commit the changes.   Committing is as simple as clicking a button and adding a commit message, so I&#8217;ll skip that here.  But now let&#8217;s assume I&#8217;ve made the commit and I want to see a list of my commits (note that while the commit is happening and while SmartSVN is interacting with the server/repository, you will see the progress in the lower left part of the screen).  You can now easily look at the lower-right area of the screen, the Transactions area to see what&#8217;s gone on with your repository (note you can maximize this view if needed).</p>
<p><img class="alignnone size-full wp-image-2119" title="smart_transList" src="http://helpspa.com/wp-content/uploads/2011/01/smart_transList.jpg" alt="smart_transList" width="454" height="403" /></p>
<p>So you can see quite a bit of information from this transaction list and you can also expand the &#8220;+&#8221; signs to get more information.</p>
<p>Now that I&#8217;ve committed my changes, I&#8217;d like to add a tag (so as to have a snapshot in time of my project).  For more information about how I use SVN in my web development process you might consider reading this article series starting from the top &#8212; you can see a list of the articles at the top of this page.</p>
<p>Back to tags &#8212;  let&#8217;s now create a tag.  The easiest thing to do is to head to the Tag+Branch menu and click &#8220;Add Tag&#8230;&#8221;</p>
<p><img class="alignnone size-full wp-image-2112" title="smart_addTag" src="http://helpspa.com/wp-content/uploads/2011/01/smart_addTag.jpg" alt="smart_addTag" width="343" height="236" /></p>
<p>to bring up the &#8220;Add Tag&#8221; options:</p>
<p><img class="size-full wp-image-2118 alignnone" title="smart_tagOptions" src="http://helpspa.com/wp-content/uploads/2011/01/smart_tagOptions.jpg" alt="smart_tagOptions" width="511" height="564" /></p>
<p>I like to name my tags like this:  client_tag_1.05, with increments as needed.  In the above example I used the name &#8220;sampleTag&#8221; and notice how SmartSVN automatically created a commit message based on my tag name.  In this dialog box you are able to create the tag based on your working copy or the repository copy, and you can decide (at the bottom) how to manage it if the tag already exists.  When you are done you can hit the &#8220;Add Tag&#8221; button to finish adding the tag.</p>
<p>Moving along, let&#8217;s take a look at the list of our tags in the repository.  Note first that SmartSVN lets you pick which repository you want to look at (if you have separate repos):</p>
<p><img class="alignnone size-full wp-image-2116" title="smart_repo_change" src="http://helpspa.com/wp-content/uploads/2011/01/smart_repo_change.jpg" alt="smart_repo_change" width="559" height="281" /></p>
<p>But moving back, let&#8217;s look at the repository view of our project:</p>
<p><img class="alignnone size-full wp-image-2117" title="smart_repo_tag_list" src="http://helpspa.com/wp-content/uploads/2011/01/smart_repo_tag_list.jpg" alt="smart_repo_tag_list" width="186" height="143" /></p>
<p>This is just a clipping but you can easily see the structure of my project, and if you wanted to you could click the &#8220;+&#8221; to see all of the tags that I have.</p>
<p>On the subject of tags, let&#8217;s go ahead and download a copy of a tag to the local drive so I can have an archive.   You could easily copy your working directory, but don&#8217;t forget that your working directory has lots of special svn files that you may not want to necessarily keep in your copy (this is a function of subversion itself, not SmartSVN).  Let&#8217;s now walk through the export process.  The first thing I did is I went to a tag in the repository view and right-clicked on &#8220;check-out&#8221; (incidentally you also could use this command if you wanted to create a working copy based on a tag).</p>
<p><img class="alignnone size-full wp-image-2122" title="svn_export_tag_1" src="http://helpspa.com/wp-content/uploads/2011/01/svn_export_tag_1.jpg" alt="svn_export_tag_1" width="282" height="248" /></p>
<p>I then added a local directory and set some options:</p>
<p><img class="alignnone size-full wp-image-2123" title="svn_export_tag_2" src="http://helpspa.com/wp-content/uploads/2011/01/svn_export_tag_2.jpg" alt="svn_export_tag_2" width="527" height="317" /></p>
<p>and then finalized my choices.  Under the &#8220;Export only&#8221; selection I left the selection as &#8220;native&#8221; &#8212; which basically exports the tag as it is &#8212; but without the svn files.</p>
<p><img class="alignnone size-full wp-image-2124" title="svn_export_tag_3" src="http://helpspa.com/wp-content/uploads/2011/01/svn_export_tag_3.jpg" alt="svn_export_tag_3" width="477" height="366" /></p>
<p>Lastly you can view a summary report before you finish the creation of the local copy of the tag:</p>
<p><img class="alignnone size-full wp-image-2125" title="svn_export_tag_4_report" src="http://helpspa.com/wp-content/uploads/2011/01/svn_export_tag_4_report.jpg" alt="svn_export_tag_4_report" width="453" height="342" /></p>
<p><strong>Foundation Version vs Professional Version</strong></p>
<p>I spent time with the Foundation Edition and the Professional Edition and I found that the Foundation, while free, is greatly limited compared to the Professional Edition.  The Foundation is excellent as a repository browser and for basic management, but for creating tags and for more complex operations, the Professional Edition is needed to take advantage of these tasks with a GUI.</p>
<p><strong>Conclusion</strong></p>
<p>Subversion is a fantastic way to implement revision control into the web development process, but can be confusing and a little overwhelming for the novice user.  For this reason the use of a GUI such as <a href="http://www.syntevo.com/smartsvn/index.html">SmartSVN</a> is a great way to get going with subversion.  SmartSVN is a paid option but is the best GUI that I&#8217;ve seen for interacting with Subversion; the $79 is well worth it when you consider that with SmartSVN, you can worry about your project, and let SmartSVN  worry about interacting with your repository.</p>
<p><em>Disclosure. I originally approached Syntevo  about writing a review of  SmartSVN.   I was given a free license to use the product.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/4-a-review-of-smartsvn-a-gui-subversion-client-for-windows/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3 &#8211; A Subversion Workflow for Web Developers and Web Development using Dreamweaver</title>
		<link>http://helpspa.com/web_development/a-subversion-workflow-for-web-developers-and-web-development-using-dreamweaver/</link>
		<comments>http://helpspa.com/web_development/a-subversion-workflow-for-web-developers-and-web-development-using-dreamweaver/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 21:14:17 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[subversion]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2031</guid>
		<description><![CDATA[This article is the third  in a series of guides about my experiences using Subversion (svn) for Web Development. These are the articles in the series: 1. A Desktop-Laptop Solution for Web Developers – Using Subversion to Co-Exist (this article) 2. What is Subversion and How Does it Help in the Web Design and Development [...]]]></description>
			<content:encoded><![CDATA[<p>This article is the third  in a series of guides about my experiences  using Subversion (svn) for Web Development.  These are the articles in the series:</p>
<p>1. <a href="http://helpspa.com/web_development/subversion/a-desktop-laptop-solution-for-web-developers-using-subversion-to-co-exist/">A Desktop-Laptop Solution for Web Developers – Using Subversion to Co-Exist (this article)</a><br />
2. <a href="http://helpspa.com/web_development/what-is-subversion-and-how-does-it-help-in-the-web-design-and-development-process/ ">What is Subversion and How Does it Help in the Web Design and Development Process?</a><br />
3. <strong>A Subversion Workflow for Web Developers and Web Development (this article)</strong><br />
4.  <a href="http://helpspa.com/web_development/4-a-review-of-smartsvn-a-gui-subversion-client-for-windows/">A Review of SmartSVN – a GUI Subversion client for Windows<br />
</a> 5.  A Quick Review of Online Options for Hosted Subversion for Web Developers<br />
6. <a href="http://helpspa.com/web_development/assembla-review-the-best-free-subversion-hosting/">A Brief Review of Assemmbla, an Online Subversion Hosting Company.</a></p>
<p>Now that you understand a little bit about my rational for using subversion and the very basic concepts for using SVN, let&#8217;s take a look at my own web development workflow using Subversion (and Dreamweaver).</p>
<p><strong>I. BASIC SETUP AND CONFIGURATION</strong></p>
<p><strong>A.  Setup the client directory on the local or development machine:</strong> I keep all of my client files in one folder.  So client_1 has a folder /client_1 where all of client_1&#8242;s files are kept.  Among the other folders in the /client_1 directory are two web specific folders:  the /client_1/web directory contains the main website files, usually in /web and  the /client_1 /webBackup directory has the backups.  These backups are either release versions or increments in the development process.  Whereas in my older workflow I referred to the iterations as simply &#8220;web backups&#8221;, now that Im using subversion nomenclature I call these iterations <strong>tags</strong>.  The image below shows the contents of a sample /client_1 directory:</p>
<p><img class="alignnone size-full wp-image-2005" title="clientFolder-2" src="http://helpspa.com/wp-content/uploads/2011/01/clientFolder-2.jpg" alt="clientFolder-2" width="272" height="209" /></p>
<p><strong>B.</strong> <strong> Setup a Subversion repository.</strong> If you are new to SVN you can head to one of the <strong><em>Subversion Hosting Companies listed in Part 6 of this series (coming soon)</em></strong>, and explore them for yourself to see which company meets your needs.  Many of these companies have trial periods and/or free accounts.  You can also setup your own SVN repository on a VPS or dedicated server, but if you&#8217;re new to SVN I&#8217;d recommend you start with a hosted service to make sure using SVN works for you in your web development cycle.</p>
<p><strong>C. Install a SVN Client such as Tortoise SVN or SmartSVN. </strong> I actually use Tortoise SVN and SmartSVN on different machines.  They are both excellent programs for helping you interface with your SVN repository.  SmartSVN is a GUI client so as someone who was completely new to SVN, I found it easy to work with.  <em><strong>You can read my review of SmartSVN in article #4 of this series (coming soon).</strong></em></p>
<p><strong>D. Setup Dreamweaver as you normally would for a website (&#8220;Manage Sites&#8221;). </strong> While Dreamweaver does have some checkin/checkout features and there are plugins for SVN, I&#8217;m not using these options.  In my workflow I&#8217;m developing completely in Dreamweaver, and DW doesn&#8217;t know about SVN.  There may be better ways to do this but right now this workflow works for me.  Note also that I&#8217;m using Dreamweaver CS3, as I&#8217;m still quite happy with the programs features and how it performs.</p>
<p><strong>II. SUBVERSION WORKFLOW FOR WEB DEVELOPMENT AND DREAMWEAVER</strong></p>
<p><strong>A. Get the local /web folder talking to the /trunk folder in the repository.</strong> I&#8217;m not going to go over the steps in detail as there are ample SVN tutorials out there, but you will basically create a folder structure in your repository with trunk, tag, and branch folders and set it up so that the contents of the /web folder on your local machine reflect the contents of the /trunk folder in the repository.  My repository for a client project looks like this:</p>
<p>/clientName<br />
/branches<br />
/tags<br />
/trunk<br />
/css<br />
/images<br />
/index.html<br />
/about.html<br />
&#8230;..</p>
<p>So you can see that the trunk contains everything that would be in the website folder that you&#8217;d upload to a live server. If you also want to version other site assets, you can create additional folders under the /trunk directory.  I usually create a /docs folder and a /working folder for frequently changed assets that I want to be able to access on many machines. Note that files that don&#8217;t change are not in this setup.  For example, I don&#8217;t put the clients web design questionnaire  or the .pdf of the signed development agreement in this structure.</p>
<p><strong>B</strong>. <strong>Start developing your site on the local machine, working in the /client_1/web directory as you normally would. </strong> Each time you make a signifigant change, you commit the change to the repository.  As you work with SVN more and more, you will decide when you need to commit your changes.   I usually commit every 30 minutes or so, unless I&#8217;m working on something more critical whereby I commit more frequently.  If I&#8217;m adding a new page for a client and adding the text, I usually will create the page and add the text and then commit to the repo.   If I wanted to I could commit once I&#8217;ve created the page, and then commit again when the content is done, but I don&#8217;t find that practical.  You, however, will find what&#8217;s practical and what works for you.</p>
<p><strong>C.  Stop and create tags at major intervals. </strong>When I&#8217;m first building a site I make very frequent use of tags. Recall that tags are a snapshot frozen in time of your site.  When I&#8217;m building a site I often make sweeping changes to the css, and that&#8217;s why I commit and tag frequently.  I may have 20-30 development tags in early development while I&#8217;m working on the site structure and cross-browser testing (though I do my browser testing with each tag creation. as I like to pickup browser compatibility issue early on).</p>
<p>Once I&#8217;m happy with the site structure and I&#8217;ve tested it in multiple browsers, I make tags less frequently.  Often I&#8217;ll complete sections of pages in a website and then create a tag.  Once the site is complete and I have it to show to the client, I also create a tag.  I then make the required corrections and changes (with more tags if needed) and then for the final release, I create a final tag.</p>
<p>In terms of versioning my tags, I like to keep all development versions under 1.0, as I save the release version for a website for 1.0.  As I make updates to the site I will increment the version number.  Major changes to the site (a new section, new feature) will sometimes get a tick up to 2.0 &#8212; but only for very signifigant changes.</p>
<p><strong>D. </strong><strong>Moving tag contents to a testing server.</strong> This step is the only major limitation I see with my svn web development workflow &#8212; and if you the reader has suggestions I&#8217;d love to hear them.  Currently when I want to upload a tag to a web server (development server or live server ), I export the tag to the local machine. My tags are named based on my personal version system, for example,  &#8221;helpspa_tag_0.5.1&#8243; , so I export the tag from the repository and place it in the client&#8217;s folder, in the /webBackup directory (recall that we created this folder in the beginning of this article).  I now head to the /webBackup/helpspa_tag_0.5.1 directory and I upload the files to the testing (or live) server.</p>
<p><strong>E. </strong><strong>Maintenance and Correctio</strong>ns.  Clients often make changes to websites, and it&#8217;s my practice to create a new tag for each set of changes that a client requests.  So if a client calls me tomorrow and asks me to make 5 changes to 4 different pages, I make the changes and save this set of changes as one tag.  I document what these change are in the commit box, of course, but I see no reason to create a new tag for every single change.  Note that if the client only wanted one change I would still create a single tag, but when multiple changes are requested in one &#8220;set&#8221;, then this set becomes a tag.</p>
<p><strong>III. LIMITATIONS AND WHAT I&#8217;D IDEALLY LIKE TO BE ABLE TO DO</strong></p>
<p><strong>A. There&#8217;s no easy way to go from the SVN repository directly to the FTP server (testing or live).</strong> There are services that will perform an FTP push every time you commit, but that&#8217;s not useful for me.  Often I&#8217;m committing work in progress that isn&#8217;t ready for people to see (e.g it doesn&#8217;t work yet), so I really only want to move to the FTP server when I&#8217;m ready &#8212; which in my case is usually when I create a tag.</p>
<p>And the reason I use the export feature and go from the tag in the /webBackups directory as opposed to copying directly from the /web directory is because the files in the /web directory also have hidden /svn folder that track change information.  While you can upload the website with these files, for very large sites it really increases the upload time.  So exporting is way you can get a copy of the site without having to deal with these hidden files.</p>
<p><strong>B. I&#8217;d like to get Dreamweaver involved.</strong> Another limitation of my system is that I&#8217;m not synchronizing.  If you are using Dreamweaver and you&#8217;ve set it up properly, you can very easily make a correction to a couple of files, and then only upload these files as needed and not the whole site.   Now if I remember what&#8217;s changed I can just upload the single files from the tag directory in /webBackup, but often times I don&#8217;t remember what files I changed and I wind up re-uploading the entire site.  And while this isn&#8217;t a deal-breaker, I&#8217;d like to improve this part of my workflow.</p>
<p><strong>C.  I&#8217;m not branching. </strong>At this time I&#8217;m not really using branches in my workflow and I&#8217;m not sure that I need them.  I&#8217;ve read mixed reviews of SVN&#8217;s ability to branch &#8212; some people think it&#8217;s great while others report it to be a disaster.  In the future I will consider looking at Mercurial.  Mercurial is a DVCS (distributed version control system) that is fundamentally different from SVN in many different ways.  According to what I&#8217;ve read, many people have said that Mercurial does a significantly better job with merging branches back into the trunk than SVN.  At this time, however, SVN still offers a ton of popularity and resources for you if you have questions.  In the future I will look at Mercurial and see if there&#8217;s a case for Mercurial in a web development workflow.</p>
<p>The preceding workflow is my own creating for getting subversion to fit into web site design.  Please feel free to leave comments to let me know where this workflow can be improved.  In the next article in this series, I will <strong><em>review SmartSVN, the program that I use as a GUI for Subversion (coming soon).</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/a-subversion-workflow-for-web-developers-and-web-development-using-dreamweaver/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2 &#8211; What is Subversion and How Does it Help in the Web Design and Development Process?</title>
		<link>http://helpspa.com/web_development/what-is-subversion-and-how-does-it-help-in-the-web-design-and-development-process/</link>
		<comments>http://helpspa.com/web_development/what-is-subversion-and-how-does-it-help-in-the-web-design-and-development-process/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 22:11:59 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[subversion]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=2013</guid>
		<description><![CDATA[This article is the second  in a series of guides about my experiences using Subversion (svn) for Web Development. These are the articles in the series: 1. A Desktop-Laptop Solution for Web Developers – Using Subversion to Co-Exist (this article) 2. What is Subversion and How Does it Help in the Web Design and Development [...]]]></description>
			<content:encoded><![CDATA[<p>This article is the second  in a series of guides about my experiences  using Subversion (svn) for Web Development.  These are the articles in the series:</p>
<p>1. <a href="http://helpspa.com/web_development/subversion/a-desktop-laptop-solution-for-web-developers-using-subversion-to-co-exist/">A Desktop-Laptop Solution for Web Developers – Using Subversion to Co-Exist (this article)</a><br />
2. <strong>What is Subversion and How Does it Help in the Web Design and Development Process? (this article)</strong><br />
3.<a href="http://helpspa.com/web_development/a-subversion-workflow-for-web-developers-and-web-development-using-dreamweaver/"> A Subversion Workflow for Web Developers and Web Development</a><br />
4.  <a href="http://helpspa.com/web_development/4-a-review-of-smartsvn-a-gui-subversion-client-for-windows/">A Review of SmartSVN – a GUI Subversion client for Windows<br />
</a> 5.  A Quick Review of Online Options for Hosted Subversion for Web Developers<br />
6. <a href="http://helpspa.com/web_development/assembla-review-the-best-free-subversion-hosting/">A Brief Review of Assembla, an Online Subversion Hosting Company.</a></p>
<p>There&#8217;s a ton of great information about the specifics of Subversion and how to use it, so I&#8217;m not going to go through all of that here.  There&#8217; an excellent free book online, &#8220;<a href="http://svnbook.red-bean.com/old-versions.html">Version Control with Subversion</a>&#8221; which I strongly recommend that you read (at least the beginning few chapters).  Rather, here I will discuss the core concepts of subversion as they relate, in my workflow, to web development.</p>
<p><strong>Synchronization and Version Control </strong></p>
<p>The two main ideas to understand when using subversion are the concepts of 1) keeping your files in sync among multiple machines and developers (if needed) 2) at the same time maintaining a log of revisions &#8212; with the ability to roll back those changes.</p>
<p><strong>Consistent Copies </strong></p>
<p>The first main  concept behind using subversion (svn) is that the main files for your project &#8211; in our case a website &#8211; are stored on a central server called a <strong>repository</strong>.  When you want to work on the website, you connect to this central server  and you synchronize your local copy with the copy that&#8217;s on the server.  SVN actualyl doesn&#8217;t use the word synchronization &#8212; if it&#8217;s your first time working on the project on the specific machine, you  first download (<strong>check-out</strong>) a copy of the site from the repository (<strong>called a working copy</strong>) and you then make your changes.  If you&#8217;ve already worked on the project on the chosen machine, you would head to the repository and update your copy &#8212; which is the method of making sure that your working copy is current (in sync) with the copy that&#8217;s in the repository.</p>
<p><strong>Version Control </strong></p>
<p>The second major advantage is that not only to you have an easy way to work on updated code no matter what development machine you use, but version-control is built in.  In my own personal version control methodology, which I&#8217;ve been using for years, I saved multiple version of my work in progress and each time saved an exact duplicate of the entire site.  Subversion, in contrast, logs the changes that you have made in each version &#8212; so while it does not keep a physical copy of every version that you have, a record of your changes is kept so that you can revert back to any revision at any time.    This is the concept that took the most time for me to get used to &#8212; I like having hard copies of everything &#8212; but the more I use subversion (backing up my repository, of course) I realize that these extra backups aren&#8217;t necessary.  You can read this article if you want to see how I used to manage my <a href="http://helpspa.com/web_development/a-sample-web-design-workflow-with-basic-version-control/">web design version control</a>.</p>
<p>One of the reasons that I chose to work with SVN is because I develop a lot on my laptop, but wanted to also harness the power of my desktop machine.  I thus work on my latptop and I upload (<strong>commit)</strong> the changes to the repository.  When I&#8217;m on my desktop machine later, I can easily run the update command to make sure that my desktop copy is current with the copy I just finished working on on my laptop.</p>
<p><strong>More Subversion Vocabulary:  Trunk, Branch, Tag</strong></p>
<p>Finally let&#8217;s touch upon a few more subversion concepts/vocabulary items.  These items are <strong>trunk</strong>, <strong>tag</strong>, and <strong>branch</strong>. The <strong>trunk</strong> is generally defined as the main line of development, whereas a <strong>tag</strong> is used to take a snapshot in time of the trunk.  Lastly, a <strong>branch</strong> is used when you want to go off in a different direction for a while, but at the same time keeping the main development line (trunk) intact.  As a simple example, if you are working on a website and you are ready to code the contact form, and you&#8217;ve coded it a certain way first, but decide now that you want to try a different script to implement the form, you can use a branch.   The thought is that your main development (i.e. your main, stable code) stays untouched in the trunk, and you can work on this new contact form coding method in a branch without altering your trunk.  If you then decided that you are happy with this new contact form code that you&#8217;ve written in your branch, you can now merge this branch into the main trunk.  Note that merging is a straightforward process that does need a degree of care and planning.  You don&#8217;t want to merge code back in that will break your original code, so it pays to do a little reading (and practice) with merging before you perform a merge on a real-life client project.</p>
<p>Note that trunk, tags, and branches are really just  nomenclature &#8212; these folders as you will learn, don&#8217;t exist in any special format &#8212; but it&#8217;s how you are managing them that make the difference.  Thus it&#8217;s by convention that we keep our main line of code in the trunk, and the side or other development pieces in the trunk.  You could just as easily call them the body and the arm, but convention is trunk and branch.  Note also that there&#8217;s nothing special about a tag other than the fact that we are calling it  a tag and that, by convention, tags are not touched.   As a tag is designed to be a snapshot in time of your trunk, it make no sense to copy and change your established tag.  And while if you wanted to you could make changes to a tag, by convention, it doesn&#8217;t make sense, as the whole idea behind a tag is to have a copy of the trunk at a certain point in time that you will not be changing &#8212; thus making a large rollback possible.   Obviously you could always go back to previous versions using the trunk, but it&#8217;s just more practical if you want to make a major rollback to have the ability to use a tag.  Having tags also allows you to keep frequent &#8220;backup&#8221; copies of your work in progress.</p>
<p>In the next article, #3 in the series, I will discuss my Subversion Workflow for Web Developers and Web Development.</p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/what-is-subversion-and-how-does-it-help-in-the-web-design-and-development-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Sample Web Design Workflow with Basic Version Control</title>
		<link>http://helpspa.com/web_development/a-sample-web-design-workflow-with-basic-version-control/</link>
		<comments>http://helpspa.com/web_development/a-sample-web-design-workflow-with-basic-version-control/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 05:01:39 +0000</pubDate>
		<dc:creator>David W</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://helpspa.com/?p=1998</guid>
		<description><![CDATA[Before I decided to take the leap of faith and code on two machines &#8212; using svn as my go-between, I was coding on a single machine and I needed some type of version control system for my projects.  In this article I will share this system; and while I&#8217;m using a variation of it [...]]]></description>
			<content:encoded><![CDATA[<p>Before I decided to take the leap of faith and code on two machines &#8212; using svn as my go-between, I was coding on a single machine and I needed some type of version control system for my projects.  In this article I will share this system; and while I&#8217;m using a variation of it now that I&#8217;m running subversion, the core principles are still relevant and useful.  To see my updated system, and my article series about using svn for web development, you can start with the <a href="http://helpspa.com/web_development/subversion/a-desktop-laptop-solution-for-web-developers-using-subversion-to-co-exist/">first article here</a>.</p>
<p>1.  Create a separate folder for each client on your hard drive, preferably keeping all of these client folders on a separate partition  You may even consider having a /clients folder to hold all of your client directories.</p>
<p><img class="alignnone size-full wp-image-2007" title="clientFolder-g copy" src="http://helpspa.com/wp-content/uploads/2011/01/clientFolder-g-copy.jpg" alt="clientFolder-g copy" width="301" height="193" /></p>
<p>2.  Make sure you have a /web directory in the client folder (among many other directories as needed).  I always put the website itself in the /web directory.  All supporting files are somewhere else in the client directory tree.  Also make sure you create a /webBackups directory.  Here is where you will store all of the iterations of the website.</p>
<p><img class="alignnone size-full wp-image-2005" title="clientFolder-2" src="http://helpspa.com/wp-content/uploads/2011/01/clientFolder-2.jpg" alt="clientFolder-2" width="272" height="209" /></p>
<p>3.  Once I start coding I create versions, or snapshots as I move along in the process in case I ever want to move back. So I will copy the /web folder to the /webBackups folder and I change the name.; usually I rename it to something like /[client]webBK_v1.2.5, or whatever number is next in the iteration scheme.</p>
<p><img class="alignnone size-full wp-image-2006" title="clientFolderBK" src="http://helpspa.com/wp-content/uploads/2011/01/clientFolderBK.jpg" alt="clientFolderBK" width="236" height="196" /></p>
<p>4. Of critical importance is this step &#8212; in addition to having these backups, I also keep a log in Excel describing each version.  In this manner I can quickly see what changes were made.</p>
<p><img class="alignnone size-full wp-image-2008" title="excelLog" src="http://helpspa.com/wp-content/uploads/2011/01/excelLog.jpg" alt="excelLog" width="372" height="222" /></p>
<p>One of the problems with the system (or reliefs if you ask me) &#8212; is that each version contains a full version of the website. Now some will criticize that this is unncessary &#8212; if you have a site with 200 images and you are simply adding a line of text to an about page, do you really need to create an entire new version with an entire copy?  In my opinon &#8211; and with this system, the answer is yes.  Disk space is cheap and problems with clients are expensive.   With this system I rest assured that no matter what happens, I always have a full copy of every version of the site that ever existed (development and production).</p>
<p>Using subversion pretty much accomplishes the same goals that I wanted with the &#8220;manual&#8221; system I describe above.  But if you are a one -person show, or you only develop off of one machine, a system like the above may be useful.  I&#8217;ve gone back to backups before and they&#8217;ve saved my skin on multiple occasions.</p>
]]></content:encoded>
			<wfw:commentRss>http://helpspa.com/web_development/a-sample-web-design-workflow-with-basic-version-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

