<?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/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Allogro™ &#187; Articles &#8211; Whitepapers</title>
	<atom:link href="http://www.allogro.com/main/cat/articles-whitepapers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.allogro.com/main</link>
	<description>Business Networking Specialists</description>
	<lastBuildDate>Sun, 13 Sep 2009 08:51:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>An easy way to keep plugins and themes updated in multiple WordPress installations</title>
		<link>http://www.allogro.com/main/2008/03/09/51/</link>
		<comments>http://www.allogro.com/main/2008/03/09/51/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 03:16:36 +0000</pubDate>
		<dc:creator>Will Murray</dc:creator>
				<category><![CDATA[Articles - Whitepapers]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ZenPhoto]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[file management]]></category>
		<category><![CDATA[Filezilla]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[PuTTY]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[shortcut]]></category>
		<category><![CDATA[symlink]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[tweak]]></category>

		<guid isPermaLink="false">http://www.allogro.com/main/2008/03/09/51/</guid>
		<description><![CDATA[If you maintain multiple WordPress blogs, you have probably been frustrated by how tedious it is to update plug-ins and themes on each blog every time there is an update. By following my detailed step-by-step instructions, you can harness the power of Linux's symbolic links (symlinks) to setup one central shared repository of plug-ins and another for themes. All your WordPress installations can then be pointed to the one repository, and updates become much easier. Suggestions for how to fix common implementation problems are also included. Plug-in authors may be interested in learning more about this technique, since it can break some plug-ins that use hard coded pathnames.]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start -->Copyright &copy; 2010 <a href="http://www.allogro.com/main">Will Murray</a>. Visit the original article at <a href="http://www.allogro.com/main/2008/03/09/51/">http://www.allogro.com/main/2008/03/09/51/</a>.<br /><p><small><a title="Start" id="Start" name="Start"></a>In this article: <a href="http://www.allogro.com/main/2008/03/09/51/#Introduction">Introduction</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Prerequisites">Prerequisites</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Structure">How my file system is structured</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Creating">Creating the repositories</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Linking">Linking to the repositories</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Recap">Recap</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Problems_and_fixes">Common problems and fixes</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Maintaining">Maintaining your repositories</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Other_systems">Using this technique with ZenPhoto and other CMS systems</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Resources">Additional resources</a>, <a href="http://www.allogro.com/main/2008/03/09/51/#Feedback">Comments and feedback</a></small></p>
<h3><a title="Introduction" id="Introduction" name="Introduction"></a>Introduction</h3>
<p><a href="http://wordpress.org/">WordPress</a> is a wonderful blogging platform and, in certain situations, a good choice for a general content management system (CMS). It is easy to end up with several parallel installations of WordPress&mdash;one for each major topic you want to discuss. Everything works great at first, but after a while, the constant barrage of updates to the main application, various plug-ins, and the themes becomes something of a management nightmare. The more blogs you operate, the more time is spent maintaining the blogging environment and the less that is available to actually blog.</p>
<p>If you host your WordPress blog on a Linux-based server (BSD or most any other Unix-like operating system should be able to do this equally well) and you have &#8220;shell access&#8221;, I might have a way to ease your pain. In a nutshell, you will create a central repository containing every WordPress plug-in that you use in all of your blogs. You create a separate repository containing each of your themes. Next, you create symbolic links (think of them as shortcuts; more about them in just a moment) from each installation of WordPress to your central repositories. From that point on, you only have to update your plug-ins and themes once, and the change will take effect instantly across all your sites. It&#8217;s a very slick trick!</p>
<p>This trick works probably works well on many other CMS systems that use plug-ins and themes; I have started using it with my <a href="http://www.zenphoto.org/">ZenPhoto</a> installations, too. In addition to helping keep things updated, it also saves disk space since you are only maintaining a single copy of the files on your server.</p>
<p>I will provide step-by-step instructions and some quirks for which you need to be aware. One quick word of caution: mistakes, bugs, and goofs can also instantly affect all your sites, so be very careful as you work, take your time, and always backup your files and databases before you start.<br />
<span id="more-51"></span></p>
<h3><a title="Prerequisites" id="Prerequisites" name="Prerequisites"></a>Prerequisites</h3>
<p>Before we get started, make sure that your system meets the following requirements:</p>
<ul>
<li>All of your WordPress installations should be hosted at the same Internet Service Provider, and they probably have to be on the same physical server (though not necessarily with some ISPs depending on how they configure things). If the server is something other than Linux or Unix-like system, they may even have to be on the same physical hard disk for this to work. Ideally, they should all be hosted under the same user account, but if not, they different accounts need to be in the same Unix security group and permissions have to be granted for the whole group, not just the owner (that&#8217;s beyond the scope of this article).</li>
<li>You must have shell access to your server. This means that you can access a command prompt (a screen that looks like a DOS window) after you login, and you can type commands that directly affect your server. These instructions assume that your server is a Linux system, though FreeBSD and other Unix-like systems should all work similarly. While Mac OS has similar features, I think the commands are somewhat different, so you will need to adapt these instructions if your server is a Mac. Windows is finally getting to the point that this type of linking may soon be available, but as of Server 2003, this method will not work on a Windows server.</li>
<li> It is also very helpful if you have some basic familiarity with your server&#8217;s shell and the structure of the file system on the server. These instructions are based on the way things are setup on my Internet Service Provider&#8217;s servers, and your ISP might do things a little differently. If you get lost or confused midway through the process, you will want to be experienced enough to figure out how to undo the things you did so far.</li>
<li>If you need a program to connect to your shell account, I recommend PuTTY. It&#8217;s a little overwhelming with all the options it has, but you can pretty much ignore them, enter the address to your server, and hit connect. Voilà! You should see a prompt to enter your username and password. If your ISP supports it, I recommend connecting using SSH, which provides an encrypted connection for better security (though it&#8217;s beyond the scope of this article to explain exactly how you do that).
	</li>
<li>I find that some things are easier to do using a good FTP program (I love Filezilla for this purpose), and other things have to be done using the shell. In particular, I like to create the central repositories by clicking and dragging files around in Filezilla rather than typing lots of commands in the shell.</li>
<li>Your server has to support symbolic links (also known as &#8220;symlinks&#8221; or &#8220;soft links&#8221;). Under most Linux/Unix-like operating systems, you use the command <code>ln -s</code> to create the symlinks. To test if you have this command, type <code>ln --help</code> from the shell; you should see the help screen for the <code>ln</code> command. If you get an error and did not make a typo, your system may not support symlinks.</li>
</ul>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Structure" id="Structure" name="Structure"></a>How my file system is structured</h3>
<p>Before I go in-depth with instructions, I&#8217;ll briefly explain how files are arranged on my ISP&#8217;s server. Your ISP hopefully arranges things for you in a similar manner.</p>
<p>When I login to my command shell and use the <code>ls</code> command (<code>ls</code> is short for &#8220;list&#8221;, which brings up a list of all the files in the current directory), I see a number of directories&mdash;one for each domain that we host (<tt>allogro.com</tt>, <tt>willmurray.name</tt>, etc.). The actual content of each website is contained within its directory (i.e., the directory &#8220;<tt>allogro.com</tt>&#8221; contains all the files for the <a href="http://www.allogro.com/">allogro.com</a> web site and the directory &#8220;<tt>willmurray.name</tt>&#8221; contains everyting for the <a href="http://willmurray.name/">willmurray.name</a> site.</p>
<p>If I print the working directory (<code>pwd</code>), I see the full path from the root of the server (the top of the file system) all the way to my account&#8217;s home. In my case, the path is: <tt>/home/acanthus</tt>. Our sites are hosted with <a href="http://www.dreamhost.com/r.cgi?53656">DreamHost</a>, a very large ISP based in Los Angeles, California (some people hate them, but we have been extremely happy with them for over 3.5 years). In this case, the first slash is the root of the file system. <tt>home/</tt> is the place that all the hosting customers&#8217; accounts are stored. <tt>acanthus</tt> is the &#8220;home directory&#8221; of our account. The <tt>allogro.com</tt> and <tt>willmurray.name</tt> directories reside underneath the <tt>acanthus</tt> directory.</p>
<p>The home directory is a special place, because it is outside of any website and not directly accessible from the web. It&#8217;s a good place to store things that should not be peeked into by curious visitors or overzealous search spiders. In fact, unless DreamHost really screwed up or I created a link into the home directory, it would be a safe place to store passwords and other fairly sensitive information. It is also an ideal place to store our shared repositories for WordPress.</p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Creating" id="Creating" name="Creating"></a>Creating the repositories</h3>
<h4>Repository directories</h4>
<p>You will want to start by creating your repositories someplace inaccessible to casual web visitors. If you have a home directory like I described above, that&#8217;s perfect and recommended. If not, you could create a new directory and try to protect it using <tt>.htaccess</tt> and <tt>robots.txt</tt> files along with other techniques to keep people out of it (though this is not a very secure method, and it could leave your repositories subject to attack).</p>
<p>Using Filezilla, I created a directory named <tt>shared</tt> (the full path is <tt>/home/acanthus/shared</tt>) to hold all the files that are shared between different web sites. Under that directory, I created two more directories: <tt>wp_plugins</tt> and <tt>wp_themes</tt> (that&#8217;s <tt>/home/acanthus/shared/wp_plugins</tt> and <tt>/home/acanthus/shared/wp_themes</tt>). In each case, I set the file attributes of these directories to give the owner full permissions (rwx) and the group and public permissions to read and execute (r-x, don&#8217;t want visitors to be able to make changes). (If you prefer numerical permissions, that&#8217;s 755.)</p>
<p><tt>wp_plugins</tt> will become the home to all of your WordPress plug-ins. If you use certain plug-ins in one blog, but not in others, go ahead and add the plug-in to this repository. Within WordPress you will enable only the plug-ins you want to use; any that you don&#8217;t want to use should just remain disabled. <tt>wp_themes</tt> is the same deal, except that you store your themes there (that should be self-evident, I hope).</p>
<h4>Best practices</h4>
<p>Be sure to disable write access to plug-in and theme files and directories unless they specifically require it. For directories, only the owner should have write access (755). For files, you also want to disable the execute permission (644). Check the documentation for each plug-in to see if it needs write access. If your plug-in breaks or has errors about being denied access, you probably need to loosen the restrictions a bit on a directory or some files for the plug-in to function. Very few themes seem to need write access (only one that I&#8217;ve ever encountered).</p>
<p>I highly recommend that you grab fresh copies of each plug-in and theme that you plan to use. This way you won&#8217;t copy bugs over from existing installations and you are certain to have the latest (and hopefully bug-free) version of the software available. Alternately, you can use the shell to copy (<code>cp</code>) or move (<code>mv</code>) existing directories into your new repositories (though I don&#8217;t recommend doing so, and it can leave your site broken until you complete the whole change). You could also use Filezilla to download your plug-ins and themes directories from your current WordPress installation(s) and upload them (thus creating a copy) to your new repositories. If you have heavily customized a plug-in or theme, this may be your best option.</p>
<p>When I upload plug-ins, I usually change the directory name to include the version number. So, if you are uploading version 1.2 of the <tt>myplugin</tt> plug-in, I&#8217;d rename the directory to <tt>myplugin.1.2</tt>. Some plug-in authors do this for you automatically, while others try to make it easy for people to upgrade by keeping the directory names the same. In a shared repository, though, this can actually cause you problems. One caveat is that some plug-in authors hard-code their directory names in their plug-ins (shame on them!), and renaming the directory breaks the plug-in. In that case, you will either have to hack the plug-in to use the updated directory name, leave the directory name unchanged, or <s>pester</s>, er, petition the author to not hard code the directory name in future releases.</p>
<p>Why worry about version numbers that way? Well, I like to test new versions of plug-ins on a low-traffic blog before introducing them to one of the more active blogs. Remember that when you make a change in the repository, it immediately affects ALL of your blogs. So by overwriting a plug-in with a newer version, you are essentially upgrading all your blogs simultaneously. If there&#8217;s a glitch in the new plug-in, then all your blogs will be affected instead of just one. By uploading the plug-ins to different directories, you can disable and enable plug-ins on a per-blog basis. Then, once all your blogs are using the new version, you can safely delete the old version from your server to save space.</p>
<p>Most plug-ins also require you to disable them before you install the newer files, and then re-enable them after everything is in place. With a shared repository, that means you have to go to each blog and disable the old plug-in, then upload, and then go back to each blog to re-enable it. I prefer the flexibility of making changes one blog at a time if I want.</p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Linking" id="Linking" name="Linking"></a>Linking to the repositories</h3>
<p>So now that you have your central repositories all setup with shiny new copies of all your plug-ins and themes, how do you use them? It&#8217;s pretty easy, even if the command you type is a little cryptic.</p>
<p>Note: I recommend starting and fully testing this on your lowest-activity blog first to get the hang of it and minimize downtime on your busiest blogs.</p>
<h4>Preparing WordPress</h4>
<p>Start by logging into WordPress and disabling all of your plug-ins (there is a link at the bottom of the page to disable all the plug-ins at once). This is important since the path to the plug-ins and even the versions might be different when we are finished than what is in use now.</p>
<h4>Locate your repositories</h4>
<p>After that is finished, login to your ISP&#8217;s shell prompt using PuTTY or your favorite program.</p>
<p>Print the working directory (<code>pwd</code> is the command to do this). If your ISP includes that information in the command prompt, so much the better! Otherwise, jot down the path to your home directory (the place you are when you first login). In my example, that will be <tt>/home/acanthus</tt>.</p>
<p>List the directory (<code>ls</code> is the basic command, though I find <code>ls -lp</code> to be a more useful view). Hopefully you will see your &#8220;<tt>shared/</tt>&#8221; directory (or whatever you named the directory that holds your repositories). Next, list your shared directory (<code>ls -lp shared</code> is the command I would use), and be sure that you can see your repositories within it.</p>
<p>Now I need to go to the <tt>wp-content</tt> directory of my WordPress installation. I would type <code>cd allogro.com</code> to change directories to the allogro.com site. I keep the blog under a directory named <tt>main</tt>, so next I would <code>cd main</code>. The <tt>wp-content</tt> is inside this directory, so I would <code>cd wp-content</code>. Note: I could have strung that all together into a single command (<code>cd allogro.com/main/wp-content</code>), but I usually prefer to go one level at a time so I don&#8217;t make mistakes.</p>
<p>Listing the directory (<code>ls -lp</code>) shows that I am, in fact, in the correct place, and there are folders named &#8220;<tt>plugins</tt>&#8221; and &#8220;<tt>themes</tt>&#8221; already here. That&#8217;s good! We need to rename those directories to get them out of the way of our new links. We do that by moving the directories to the same location with a different name (a fairly round-about way of doing it, but it works). Enter the commands <code>mv plugins plugins.disabled</code> and then <code>mv themes themes.disabled</code>. At some point in the future after everything is working, remember to come back and delete these disabled directories.</p>
<h4>Create the symlinks</h4>
<p>Now it is time to create the symlinks to your shared repositories. This is where you need to enter the full pathname to your folders, so start by verifying that you can see all your shared plug-ins: <code>ls /home/acanthus/shared/wp_plugins</code> (substitute your own path, of course). The command to create the symlink is almost identical: <code>ln -s /home/acanthus/shared/wp_plugins plugins</code> (again, substituting your own path).</p>
<p>Let me explain that carefully. <code>ln -s</code> is the command to create a symbolic link. Be sure to use lowercase letters, because uppercase will not work correctly. Also, be sure to include the &#8220;-s&#8221;, or the system will attempt to create a hard link instead of a symbolic link (which is <em>not</em> what you want), and will likely generate an error on most systems (unless you are logged in as &#8220;root&#8221; on your own server, and then you might cause yourself problems). Next, you give the full pathname to the target (the shared plug-ins repository). You technically <em>could</em> use relative paths (if you know how those work), but full paths seem to be more stable for plug-ins. The final part is the name of your new link. Since WordPress expects your plug-ins folder to be named <tt>plugins</tt>, that&#8217;s what we used.</p>
<p>If you did not get an error message, when you list the directory (<code>ls -lp</code>), you should see that the entry for <tt>plugins</tt> looks something like this: <tt>plugins -> /home/acanthus/shared/wp_plugins/</tt> (with the file attributes set to give everyone full access as indicated by &#8220;lrwxrwxrwx&#8221;, but that&#8217;s not a problem since the permissions on the repository are what matter, not the ones on the symlink). This means you have successfully created a symlink to your repository folder. List the contents of that folder (<code>ls plugins</code>) and it should exactly match the contents of the repository, since they are actually the same folder just with a new link.</p>
<p>Now it&#8217;s time to link to your themes: <code>ln -s /home/acanthus/shared/wp_themes themes</code> (once again, substituting your own path for mine).</p>
<h4>Configure and test WordPress</h4>
<p>Go back to the administration area of your WordPress blog. Under presentation, you should see a list of all the themes you uploaded to the shared themes repository. If you do not see any difference, you might need to clear your browser&#8217;s cache and refresh the page. Simply select your desired theme to activate it. Even if your desired theme came up automatically, it might be a good idea to select a different theme momentarily, and the reselect your desired theme. This sometimes fixes weird problems I&#8217;ve encountered, so doing it right now rather than later makes sense. View the blog and make sure things look right.</p>
<p>You might have to reconfigure your widgets since you changed themes. Some widgets might not work or be available until you activate a related plug-in.</p>
<p>After you are sure your theme is working, go back to the plug-in administration for your blog and enable one or two plug-ins that you can use to easily verify your plug-in repository is working. If those two look good, you can enable one or two more plug-ins and then test them. Repeat until all the desired plug-ins are verified.</p>
<p>If after enabling a plugin you see warnings that a path could not be found, and if you renamed the plug-ins&#8217; directories to include their version number, you might have to rename the plug-in directory back to its original name to get the plug-in to work again.</p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Recap" id="Recap" name="Recap"></a>Recap</h3>
<p>These are the steps anytime you want to have WordPress use your shared repositories instead of a stand-alone installation. If you have followed my instructions all the way so far, then you will repeat the following steps for each of your remaining blogs. Again, I recommend working in order from the blog with the least traffic to the one with the most to minimize downtime for your visitors as you become familiar with the process.</p>
<p>This recap assumes that you have already created your shared repositories and just need to link to them now.</p>
<ol>
<li>Disable all plug-ins in WordPress.</li>
<li>In the shell, navigate to the <tt>wp-content</tt> directory of your blog (<i>e.g.</i>, <code>cd willmurray.name/blog/wp-content</code>; use your own pathname).</li>
<li>Rename the current <tt>plugins</tt> and <tt>themes</tt> directories (<i>e.g.</i>, <code>mv plugins plugins.disabled</code> and <code>mv themes themes.disabled</code>).</li>
<li>Create the symlinks (<i>e.g.</i>, <code>ln -s /home/acanthus/shared/wp_plugins plugins</code> <code>ln -s /home/acanthus/shared/wp_themes themes</code>; use your own pathnames)</li>
<li>In WordPress, activate your theme (if it&#8217;s already active, change to another one, then change back to your desired theme).</li>
<li>Reconfigure Widgets if necessary.</li>
<li>Activate one or two plug-ins at a time and test as you go</li>
</ol>
<p>Note: After you have a plug-in working in one copy of your blog, it should work in all copies.</p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Problems_and_fixes" id="Problems_and_fixes" name="Problems_and_fixes"></a>Common problems and fixes</h3>
<h4>Redirect URLs generated by plug-ins to the correct subdirectory using .htaccess</h4>
<p>Some of my blogs are at the root of the site (www.example.com/), while others are in subdirectories (www.example.com/blog or www.example.com/main). Some plug-ins assume that your site is at the root, and they do not work correctly otherwise. I have been able to fix this in most cases by adding a redirect in the root-level <tt>.htaccess</tt> file of sites where WordPress is not at the root, and redirect requests for <tt>/wp-content</tt> to the appropriate subdirectory (<tt>/blog/wp-content</tt> or <tt>/main/wp-content</tt>).</p>
<h4>Relative paths leading outside the plugins directory cause problems</h4>
<p>Some plug-ins use relative paths to files outside of the <tt>wp-content/plugins</tt> folder (i.e., they try to access a file in the main WordPress installation directory). Without editing the plug-in, there&#8217;s really no way to fix this problem. If you are up to hacking the plug-in, you could add a new variable at the top of your theme&#8217;s <tt>index.php</tt> file that gives the full pathname to your local <tt>plugins</tt> directory (well, it&#8217;s actually the symlink to your shared repository, but WordPress doesn&#8217;t know that or care). For example, you could add the following to your <tt>index.php</tt><br />
<code lang="php"><br />
< ?php $SHARED_PLUGINS="/home/acanthus/allogro.com/main/wp-content/plugins/"; ?><br />
</code><br />
Then go though the plug-in files and add the <tt>$SHARED_PLUGINS</tt> variable in front of each reference to a relative path. Example:<br />
<code lang="php"><br />
/*	Old code:<br />
require_once('../../wp-example.php);<br />
	New code: */<br />
require_once($SHARED_PLUGINS . '../../wp-example.php);<br />
</code></p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Maintaining" id="Maintaining" name="Maintaining"></a>Maintaining your repositories</h3>
<p>The whole point of this exercise was to make it much easier to keep your plug-ins and themes updated across multiple sites. (Oh yeah! That&#8217;s why I just went through all of this.) Here&#8217;s how easy it is to update everything nearly instantly&#8230;</p>
<p>When you are in the plug-ins administration area and notice that a plug-in has an available update, go fetch it, extract it, and rename the directory to include the version number of the release. Upload the plug-in to your repository using FTP. Refresh the plug-ins administration page. You should see both the old version of the plug-in (still active) and the new version (not yet active). Disable the old version. Enable the new version. Test.</p>
<p>If something broke, it&#8217;s probably because the plug-in has its directory name hard-coded within it (not a good thing for several reasons). You will have to disable the plug-in in ALL your blogs, then replace the old version with the newer version as instructed by the author. Then you can enable the plugin in each blog. Not as elegant, but still only one upload to worry about.</p>
<p>When you are happy that everything worked, go to your other blogs whenever you want, and disable the old version and enable the new version. There&#8217;s no extra uploading to do. If you need to tweak a plug-in for any reason, you only have to do it once, and the tweak takes effect instantly on all of your blogs.</p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Other_systems" id="Other_systems" name="Other_systems"></a>Using this technique with ZenPhoto and other CMS systems</h3>
<p>The basic principles are the same no matter what system you use. The only challenges are (1) how self-contained plug-ins are (if they frequently look for files outside of the <tt>plugins</tt> folder, then there is a high chance it won&#8217;t work), and (2) how spread-out the files are (the more spread out, the more symlinks you have to create and maintain).</p>
<p>With ZenPhoto, I wanted to add my own CSS file to the default theme. I had to symlink directly to my new CSS file (same process, except you enter the full path and filename, not just the pathname) from within the styles directory of the theme. Again, it&#8217;s the same philosophy, but a little more work. But, when I make a change in that one style sheet, the three sites that share that sheet are all updated instantly. Very cool.</p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Resources" id="Resources" name="Resources"></a>Additional resources</h3>
<p><strong>Articles:</strong></p>
<ul>
<li>&#8220;Symbolic link.&#8221; <cite>Wikipedia, The Free Encyclopedia.</cite> 6 Mar 2008, 18:31 UTC. Wikimedia Foundation, Inc. 10 Mar 2008 &lt;<a href="http://en.wikipedia.org/w/index.php?title=Symbolic_link&#038;oldid=196335114">http://en.wikipedia.org/w/index.php?title=Symbolic_link&#038;oldid=196335114</a>&gt;.</li>
</ul>
<p><strong>Content management systems:</strong></p>
<ul>
<li><a href="http://wordpress.org/">WordPress</a> is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability</li>
<li><a href="http://www.zenphoto.org/">ZenPhoto</a>, a simpler web photo gallery</li>
</ul>
<p><strong>Software tools:</strong></p>
<ul>
<li><a href="http://filezilla-project.org/">FileZilla</a>, the free FTP client</li>
<li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>: a free telnet/ssh client</li>
</ul>
<p><strong>Service providers:</strong></p>
<ul>
<li><a href="http://www.dreamhost.com/r.cgi?53656">DreamHost</a> Internet service provider</li>
<li><a href="http://sacramentoonlineservices.com/">Sacramento Online Services</a> for sensible domain name and e-mail prices</li>
</ul>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<h3><a title="Feedback" id="" name="Feedback"></a>Comments and feedback</h3>
<p>I would appreciate any feedback that you might have. If I left any steps out, or if I could have explained something more clearly, please let me know.</p>
<p>If you use the technique, please leave me a comment. You are also welcome to link to one of your sites that use it.</p>
<p>If you are a plug-in author who has updated your plug-in to work more gracefully with this technique, please let us know!</p>
<hr />
<small><em><a href="http://willmurray.name/blog/contact_will/">Will Murray</a> is a <a href="http://willmurray.name/blog/">blogger</a> and network integration consultant with <a href="http://www.allogro.com/">Allogro&trade; Business Networking Solutions</a>. He has been an Internet trailblazer since 1991, and has a passion for technology, communication, and new media.</em></small></p>
<p style="font-size:smaller;margin:6pt 0 12pt;text-align:right;"><i><a href="http://www.allogro.com/main/2008/03/09/51/#Start">&ndash;Top&ndash;</a></i></p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.allogro.com/main/2008/03/09/51/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
	</item>
		<item>
		<title>RAID &#8211; What is it and what are the differences?</title>
		<link>http://www.allogro.com/main/2006/08/30/8/</link>
		<comments>http://www.allogro.com/main/2006/08/30/8/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 03:10:24 +0000</pubDate>
		<dc:creator>Will Murray</dc:creator>
				<category><![CDATA[Articles - Whitepapers]]></category>
		<category><![CDATA[hard disk array]]></category>
		<category><![CDATA[mirroring]]></category>
		<category><![CDATA[parity]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[striping]]></category>

		<guid isPermaLink="false">http://www.allogro.com/main/?p=8</guid>
		<description><![CDATA[Copyright &#169; 2010 <a href="http://www.allogro.com/main">Will Murray</a>. Visit the original article at <a href="http://www.allogro.com/main/2006/08/30/8/">http://www.allogro.com/main/2006/08/30/8/</a>.<br /><p><img src="/icons/Nuvola/128x128/devices/raid.png" alt="Raid icon" align="right" border="0" height="128" hspace="3" vspace="1" width="128" /></p>
<p>RAID is a method of storing data on multiple hard disks. Through the “magic” of the disk array, all of the individual disks appear as a single disk to the operating system. Large arrays can be split into smaller <em>logical disks</em>, that can be any size up to the total amount of disk space. Depending on exactly how the data is spread across the multiple disks determines the relative speed and security of the data on the disks.</p>
<p>Back in the old days when large (750MB) hard disks were relatively expensive (say $1200 US) and smaller disks (100MB) were relatively inexpensive (maybe $130), somebody figured out that&#8230; [Continue reading]</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start -->Copyright &copy; 2010 <a href="http://www.allogro.com/main">Will Murray</a>. Visit the original article at <a href="http://www.allogro.com/main/2006/08/30/8/">http://www.allogro.com/main/2006/08/30/8/</a>.<br /><p><img src="/icons/Nuvola/128x128/devices/raid.png" alt="Raid icon" align="right" border="0" height="128" hspace="3" vspace="1" width="128" /></p>
<p>RAID is a method of storing data on multiple hard disks. Through the “magic” of the disk array, all of the individual disks appear as a single disk to the operating system. Large arrays can be split into smaller <em>logical disks</em>, that can be any size up to the total amount of disk space. Depending on exactly how the data is spread across the multiple disks determines the relative speed and security of the data on the disks.</p>
<p>Back in the old days when large (750MB) hard disks were relatively expensive (say $1200 US) and smaller disks (100MB) were relatively inexpensive (maybe $130), somebody figured out that it could be possible to link several of the inexpensive disks together to roughly equal the capacity of a single larger disk. The complete package was called a <em>disk array</em>, and the method of storing the data on the disks was called RAID, for <em>Redundant Array of Inexpensive Disks</em>.</p>
<p>Today, the relative price difference between an 80GB and a 160GB or even a 400GB hard drive is not so great; however, RAID is still very much a part of life with computers—especially with servers. Obviously there is more to RAID than just a cost savings. (RAID now stands for Redundant Array of Independent Devices, which indicates the drift away from price being the motivating factor in choosing a RAID solution.) In fact, by the time you factor in the additional hardware to create and manage the array, RAID usually costs more than non-RAID solutions. So why do we use it? The answers are speed and reliability.</p>
<p><span id="more-8"></span>Imagine for a moment that you were an engineer creating the first RAID system (I’d say “RAID Array”, which is the common term, but that’s redundant like saying PIN Number). You design the system so that when someone saves data to the array, it starts filling up the first disk in the array first. Then, when the person saves more data than will fit on the first disk, the system automatically stores the next data on the next disk. This process continues, until eventually you fill up the third and fourth disks. That’s the concept anyway, though the actual implementation (below) is a little different. This fast and expandable solution is known as <strong>RAID-0</strong> (also known as disk striping with no parity; more about striping and parity in a moment) and is still used commonly today. It is the RAID solution with what is generally considered the best performance.Array controllers make use of the fact that each disk can write data to the disk at the same time another disk is busy. So the controller breaks the data up into smaller chunks (called <em>stripes</em>), and sends one stripe to disk 1. While disk 1 is busy storing the first stripe, the controller sends the next stripe of data to disk #2. While disks 1 and 2 are writing their data, the controller sends another stripe to disk #3 (if there is one), and so on. Eventually it runs out of disks in the array, so it starts back over with disk 1 again. Using this method, all of the disk space is available for use.</p>
<p>What happens if disk #2 unexpectedly fails? Since data is spread across all the disks, if even one of them becomes damaged (or the controller), the entire array becomes unusable. That’s the down side of RAID-0.</p>
<p>Back to the drawing board you go. What if we spend more money—twice as much to be exact— and build two arrays that contain exactly the same information? That way if one of the arrays dies, the other array will continue to run until we can replace the failed disk. This solution became known as <strong>RAID-1</strong> (disk mirroring). Because it is basically two identical RAID-0 arrays, it offers exactly the same performance with the best fault-tolerance (i.e., it is both fast and able to protect against failures). Unfortunately, it’s also usually the most expensive RAID solution. While each half of the mirror can utilize all its disk space, half of the total storage capacity is lost due to the mirroring (an array with 360GB of total storage would only hold 180GB of usable data; the other 180GB would be a duplicate copy of the first 180GB). Note: If a single controller manages both mirrors, it is possible that both arrays could end up with identically bad data if the controller goes bad. Some people use two separate but compatible controllers to reduce this slight risk.</p>
<p>Okay. That sounds like a workable solution, but it’s too expensive for large arrays. You figure that the data really wouldn’t need to be duplicated if there was just some way to (a) detect errors and (b) recover from errors when they are found. Your solution is to calculate and store a checksum of all the data that’s saved. A <em>checksum</em> is just a fancy word for a process that detects errors that can be used to recover from them when they are found. Naturally it doesn’t do a lot of good to store the checksum alongside the actual data. If the data and the checksum were on the same disk, and if the disk went bad, then you would be no better off than with RAID-0.</p>
<p><strong>RAID-2</strong> (hamming code error correction), <strong>RAID-3</strong> (virtual disk blocks), <strong>RAID-4</strong> (dedicated parity disk), and <strong>RAID-5</strong> (striped parity) are all variations on this theme of storing the data along with a checksum on multiple disks (writing with <em>parity</em> is the term). RAID-2 is no longer used, and RAID-3 and RAID-4 are not used except in certain uncommon situations. RAID-5 has emerged the clear winner in this parity slugfest.</p>
<p>RAID-5 combines the striping from RAID-0 with error checking. When the controller sends a stripe of data to disk 1, it will send a stripe of parity data to a different disk in the array. It is very smart about where it sends the data, so that if any one disk in the array fails, the entire array can keep right on running. Many arrays allow for <em>hot swapping</em> the failed disk while the server is running. Then, once a replacement disk is inserted, the array restores the lost data onto the new drive automatically by combing the remaining good data with the parity information. Naturally, the array becomes unrecoverable if more than one disk goes bad (which is why you want to swap out bad disks as quickly as possible) or if the controller goes bad.</p>
<p>RAID-5 (striping with parity) does have a bit more overhead than RAID-0 (striping without parity). All that parity takes a little time to write to disk (making RAID-5 a bit slower than RAID-0 or RAID-1) and a little extra space (generally 1 extra disk than would be required for RAID-0).</p>
<p>So how many disks do you need?</p>
<p>For RAID-0, the answer is two (any less than two, and you wouldn’t have an array—just a regular hard disk with an expensive controller that probably would complain about needing another disk). The two disks also need to be the same size. Many controllers will accept differently sized disks, but the smallest disk in the array will determine the capacity of the entire array. So, if you have an array with one 80GB disk and one 400GB disk, the maximum usable space in the array would be only 160GB (what a waste!).</p>
<p>For RAID-1 you need twice as many disks as you want to use for storage. For example, if you want 400 GB of usable data, you need to purchase TWO 400GB disks. Or, you might be able to purchase FOUR 200GB disks and have the array configure two disks in RAID-0 (striping without parity) and then use RAID-1 (mirroring) to duplicate the striped sets. This is actually referred to as <strong>RAID-10</strong>. RAID-10 is actually just a combination of RAID-1 and RAID-0. Depending on the controller, you should be able to create striped disks that are mirrored (<strong>RAID-0+1</strong>) or mirrors that are striped across multiple disks (<strong>RAID-1+0</strong>).</p>
<p>For RAID-5 you need at least 3 disks. The first two disks stripe the data, and the third disk stripes the parity. (Actually with RAID-5 the parity stripe rotates between all the disks, but it’s easier to think of it as one disk holding the parity information. Incidentally, RAID-4 uses one dedicated disk for parity just as I described.) RAID-5 is nice because after the initial investment in three disks, you can add additional disks to the array and utilize them fully (well, up to the size of the smallest disk in the array) without losing any more overhead for parity.</p>
<p>Just like with RAID-10, there are a few RAID-5 permutations available. <strong>RAID-50</strong> (or <strong>RAID-5+0</strong>) consists of a series of RAID-5 groups striped in RAID-0 fashion to improve the RAID-5 performance without reducing data protection. There is also <strong>RAID-53</strong> (or <strong>RAID-5+3</strong>) which combines striping (in RAID-0 style) with RAID-3’s virtual disk blocks (something I won’t delve into). This offers higher performance than RAID-3 but at much higher cost.</p>
<p>You may see the term <strong>RAID-1+5</strong> when ordering a server. This usually indicates the first two drives in the server are configured for mirroring (RAID-1), and the remaining drives in the system (at least 3) are configured for striping with parity (RAID-5). This is common for Microsoft Windows-based servers. The operating system and other applications are stored in the mirror. Data, which usually benefits from the multiple simultaneous-writing features of striping, are stored in the RAID-5 portion of the array.</p>
<p>There are other RAID configurations available, but they are not widely supported at this time. Some worth noting are:</p>
<ul>
<li><strong>RAID-6</strong>: This type is similar to RAID-5 but includes a second parity scheme that is distributed across different drives and thus offers extremely high fault- and drive-failure tolerance.</li>
<li><strong>RAID-7</strong>: This type includes a real-time embedded operating system as a controller, caching via a high-speed bus, and other characteristics of a stand-alone computer.</li>
<li><strong>RAID-S</strong>: This is an alternate, proprietary method for parity RAID from EMC Symmetrix. It appears to be similar to RAID-5 with some performance enhancements as well as the enhancements that come from having a high-speed disk cache on the disk array.</li>
</ul>
<p>Finally, another term that you frequently hear along with RAID is JBOD. Remember back to the example of the first array you designed? You created an array of disks that filled up sequentially—when disk 1 was full, things spilled over onto disk 2, and so on. That type of an array (no striping, no parity) is considered Just a Bunch Of Disks, or <strong>JBOD</strong>. They don’t make a whole lot of sense in most cases, but people still use them. They do not have the speed of striping, and naturally there’s no fault-tolerance. They are just a bunch of disks available for sequential storage of data, much like magnetic tape or an optical disk. In fact, using them as an interface between another sequential storage medium is one of the few things they do pretty well.</p>
<p>Throughout this article, I’ve used the term <strong>controller</strong>. The controller can either be a piece of hardware or some software running on the server. Software controllers are generally a poor option for most situations because the operating system and CPU of the computer have to process and manage all the data flowing to and from the disks. Mirroring is usually faster in this situation than striping, and adding parity to the mix bogs things down even more. Hardware controllers are much lower in price than they used to be, and should always be considered an important component in a server. Many server-class motherboards now offer RAID (at least RAID-0, RAID-1, and JBOD) support built-in. Even many higher-end desktop motherboards offer RAID support for SATA (Serial ATA) drives.</p>
<p><strong>Summary</strong><br />
The three types of RAID you are most likely to encounter or care about are RAID-0, RAID-1, and RAID-5.</p>
<p>RAID-0 is fastest performer and the least expensive option, but it offers no protection against faults. It’s great for situations where you need a lot of speed and fault-tolerance is not very important. You might find it used for storing cached or temporary information that needs to be retrieved quickly, but is harmless if lost.</p>
<p>RAID-1 is just as fast as RAID-0, but because it requires twice the disks as RAID-0, it’s usually the most expensive option. If one half of the mirror has a problem, the good half takes over (temporarily becoming a RAID-0 array) until the bad half can be replaced. Regeneration of the mirror after a failure is usually pretty fast, and it may even be automatic.</p>
<p>RAID-5 is slower than RAID-1 because it has to write extra parity data to a disk in the array, but it only requires one extra disk total, no matter how large the array grows. Many controllers allow for hot swapping of bad disks, and like RAID-1, regeneration of the array is usually fast and automatic.</p>
<p>Innovative engineers have figured out ways to combine various RAID methods to improve performance or tweak other measurements, but most are based on some combination of these three methods (e.g., RAID-10 actually being RAID-0+1 or RAID-1+0).</p>
<p>RAID-1+5 is a little different. It uses RAID-1 (mirroring) for the first two drives in a server, and the operating system and applications are generally stored there. The remaining three or more disks use RAID-5 for storing data, since striping generally works well for storing frequently changing data.</p>
<p>RAID controllers are a built-in option on many server and higher-end desktop PC motherboards. If you have that option and your budget is tight, use it! Otherwise, spend the money for a better hardware RAID controller for more options and better performance. Software-based RAID is an option is most server operating systems, but performance is generally much worse than with hardware RAID, but may still be a better option than doing without RAID completely.</p>
<p>Some information was taken from WhatIs.com’s <a href="http://searchstorage.techtarget.com/gDefinition/0,294236,sid5_gci214332,00.html">definition of RAID</a>.</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.allogro.com/main/2006/08/30/8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://www.allogro.com/main/icons/Nuvola/128x128/devices/raid.png" />
		<media:content url="http://www.allogro.com/main/icons/Nuvola/128x128/devices/raid.png" medium="image">
			<media:title type="html">Raid icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Surge Protector vs. UPS</title>
		<link>http://www.allogro.com/main/2006/08/30/9/</link>
		<comments>http://www.allogro.com/main/2006/08/30/9/#comments</comments>
		<pubDate>Thu, 31 Aug 2006 03:07:34 +0000</pubDate>
		<dc:creator>Will Murray</dc:creator>
				<category><![CDATA[Articles - Whitepapers]]></category>
		<category><![CDATA[disaster recovery]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[power]]></category>
		<category><![CDATA[surge protector]]></category>
		<category><![CDATA[UPS (power)]]></category>

		<guid isPermaLink="false">http://www.allogro.com/main/?p=9</guid>
		<description><![CDATA[Copyright &#169; 2010 <a href="http://www.allogro.com/main">Will Murray</a>. Visit the original article at <a href="http://www.allogro.com/main/2006/08/30/9/">http://www.allogro.com/main/2006/08/30/9/</a>.<br /><p><img src="/icons/Nuvola/128x128/apps/energy.png" alt="Lightning Bolt icon" align="right" border="0" height="128" hspace="3" vspace="1" width="128" />A client asked: <em>Do I need a surge protector?  If the power goes out sometime, what happens w/ the computer?</em></p>
<p>A surge protector is very important for protecting computers and other electronic equipment from damaging electrical spikes and surges. Fortunately this client already had one. Read the rest of the comments I wrote to her explaining the difference and dispelling the confusion surrounding surge protection and uninterruptible power supplies:</p>
<p>Perhaps you were thinking of an uninterruptible power supply (”<strong>UPS</strong>”, not to be confused with the brown trucks, of course). There are essentially two types of UPSes. One keeps a battery charged, and if it detects that the power&#8230; [Continue reading]</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start -->Copyright &copy; 2010 <a href="http://www.allogro.com/main">Will Murray</a>. Visit the original article at <a href="http://www.allogro.com/main/2006/08/30/9/">http://www.allogro.com/main/2006/08/30/9/</a>.<br /><p><img src="/icons/Nuvola/128x128/apps/energy.png" alt="Lightning Bolt icon" align="right" border="0" height="128" hspace="3" vspace="1" width="128" />A client asked: <em>Do I need a surge protector?  If the power goes out sometime, what happens w/ the computer?</em></p>
<p>A surge protector is very important for protecting computers and other electronic equipment from damaging electrical spikes and surges. Fortunately this client already had one. Read the rest of the comments I wrote to her explaining the difference and dispelling the confusion surrounding surge protection and uninterruptible power supplies:<span id="more-9"></span></p>
<p>Perhaps you were thinking of an uninterruptible power supply (”<strong>UPS</strong>”, not to be confused with the brown trucks, of course). There are essentially two types of UPSes. One keeps a battery charged, and if it detects that the power goes out, then it switches over to the battery. It usually takes a few milliseconds to switch over. That may sound very fast to a human, but when computers operate in the millisecond (or faster) range, it can seem like quite a while. The second type of UPS has an Automatic Voltage Regulator (<strong>AVR</strong>) that charges a battery to continually run the computer. When the power goes out, the battery stops charging, but the equipment never feels a disruption. Your computer receives a continuous supply of pristine electricity. Naturally the second type costs a bit more.</p>
<p>UPSes are rated in VA’s (volt-amps) and Joules. Basically with <strong>VA</strong>’s, the bigger the number the longer your equipment will run during a power outage. <strong>Joules</strong> are more commonly touted with surge protectors, but they apply to UPSes, too. Again, the bigger the number, the better the protection against spikes and surges—even nearby lightning strikes in high-end ones.</p>
<p>One thing you generally don’t want to do is plug a surge protector into a UPS—at least into a low-end UPS. A normal electrical current cycles smoothly like an ocean wave from high to low and back again. Output from low-end UPSes (even ones with AVRs) usually produce electrical currents shaped more like square speed bumps. Square waves do not hurt your electronics, but they can cause problems if you plug a surge protector into a square-wave output UPS.</p>
<p>To summarize:</p>
<ol>
<li>[The client has] a pretty darn good surge protector, so [the client is] protected from spikes and surges.</li>
<li>[The client is] not protected from sags and brown-outs (minor and major dips in the power), and certainly [the client is] not protected from power failures.</li>
<li>Bad power (especially spikes and full-power failures) cause the majority of computer data corruption. Data being written to a disk as the power spikes can be garbled. Drives writing to a disk during an outage, though rare, can write gibberish across the surface of the disk as they spin down (it happened to a computer I used to work on).</li>
<li>A UPS of any type will help protect you from complete power outages. UPSes with AVR will also effectively filter out sags and brownouts because the computer is always running on the battery. Non-AVR UPSes kick in when power drops below a certain point (some brown-outs are enough; some aren’t), and there’s always a slight delay, so you ever so slightly risk some data loss (it really depends on how sensitive your particular computer is to low-voltage situations—some are touchy; some don’t seem to notice).</li>
<li>It is okay to plug a UPS into a surge protector, but you should never plug a surge protector into a UPS unless the UPS produces pure sine-wave output (which consumer-grade UPSes will not).</li>
<li>Only critical devices (computer and monitor in [the client’s] case; possibly the printer) should be plugged into the battery powered part of the UPS. Other peripherals (notably speakers, laser printers, and anything non-critical) should be plugged into the non-battery protected part of the UPS or a regular surge protector. That way, you might lose your audio (speakers powered off), but you have maximum run-time for safely shutting down your computer and monitor.</li>
<li>Paying a little more for a UPS which can communicate to your PC and tell it to shut down if the power goes out can be very helpful if you aren’t home when the power goes out.</li>
</ol>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.allogro.com/main/2006/08/30/9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://www.allogro.com/main/icons/Nuvola/128x128/apps/energy.png" />
		<media:content url="http://www.allogro.com/main/icons/Nuvola/128x128/apps/energy.png" medium="image">
			<media:title type="html">Lightning Bolt icon</media:title>
		</media:content>
	</item>
		<item>
		<title>Preventive Maintenance Plans Are a Very Good Idea</title>
		<link>http://www.allogro.com/main/2006/05/09/15/</link>
		<comments>http://www.allogro.com/main/2006/05/09/15/#comments</comments>
		<pubDate>Tue, 09 May 2006 11:14:51 +0000</pubDate>
		<dc:creator>Will Murray</dc:creator>
				<category><![CDATA[Articles - Whitepapers]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[disaster recovery]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[preventive maintenance]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.allogro.com/main/?p=15</guid>
		<description><![CDATA[Copyright &#169; 2010 <a href="http://www.allogro.com/main">Will Murray</a>. Visit the original article at <a href="http://www.allogro.com/main/2006/05/09/15/">http://www.allogro.com/main/2006/05/09/15/</a>.<br /><p><img src="/icons/CrystalProject/crystal_project/128x128/apps/khelpcenter.png" alt="Life Preserver icon" align="right" border="0" height="128" hspace="3" vspace="1" width="128" /><strong>Preventive Maintenance Helps Safeguard Data</strong><br />
Most of our clients find the information stored on the hard disk is <strong>much</strong> more important than the hardware that stores the data. Taking steps to protect this information makes sense. That is what preventive maintenance is all about.<br />
<strong>Preventive Maintenance Improves Security</strong><br />
Regular virus and spyware scanning is critical to keeping your data safe. Security patches and software updates are released several times each month for a variety of software. Some notify you, but others do not. All are important if you wish to stay protected. System and security logs give a wealth of information about the state of the equipment&#8230; [Continue reading]</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start -->Copyright &copy; 2010 <a href="http://www.allogro.com/main">Will Murray</a>. Visit the original article at <a href="http://www.allogro.com/main/2006/05/09/15/">http://www.allogro.com/main/2006/05/09/15/</a>.<br /><p><img src="/icons/CrystalProject/crystal_project/128x128/apps/khelpcenter.png" alt="Life Preserver icon" align="right" border="0" height="128" hspace="3" vspace="1" width="128" /><strong>Preventive Maintenance Helps Safeguard Data</strong><br />
Most of our clients find the information stored on the hard disk is <strong>much</strong> more important than the hardware that stores the data. Taking steps to protect this information makes sense. That is what preventive maintenance is all about.<br />
<strong>Preventive Maintenance Improves Security</strong><br />
Regular virus and spyware scanning is critical to keeping your data safe. Security patches and software updates are released several times each month for a variety of software. Some notify you, but others do not. All are important if you wish to stay protected. System and security logs give a wealth of information about the state of the equipment and the network. By checking the logs, we often spot potential problems early and avoid emergencies by fixing problems before they become noticeable.<br />
<strong>Preventive Maintenance Improves Performance</strong><br />
Some aspects of computer systems degrade in performance over time. This has even given rise to the colorful term of &#8220;<a href="http://www.google.com/search?&amp;q=%22Windows+rot%22" target="_blank" title="Google search on Windows rot">Windows rot</a>&#8220;. Preventive maintenance helps improve the overall speed of system and network performance in these respects.<br />
<strong>Preventive Maintenance Saves Money</strong><br />
You’ve heard the old adage &#8220;an ounce of prevention is worth a pound of cure.&#8221; It may be trite, but it’s also true. Avoiding problems saves you money in the long run, compared with laying out cash for new components or repair jobs. Emergency repair procedures can consume your IT budget at alarming rates. Most preventive maintenance procedures are quite simple, compared to troubleshooting and emergency repair procedures. This saves you much time (and stress!).</p>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://www.allogro.com/main/2006/05/09/15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="http://www.allogro.com/main/icons/CrystalProject/crystal_project/128x128/apps/khelpcenter.png" />
		<media:content url="http://www.allogro.com/main/icons/CrystalProject/crystal_project/128x128/apps/khelpcenter.png" medium="image">
			<media:title type="html">Life Preserver icon</media:title>
		</media:content>
	</item>
	</channel>
</rss>
