<?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>Web Architecture, Web Production, Web Marketing &#187; Server Architecture</title>
	<atom:link href="http://www.usercore.com/category/server-architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.usercore.com</link>
	<description>Matt MacDougall - attempting to grok users, management, marketing, linux, subversion, coldfusion, os x and web geekery</description>
	<lastBuildDate>Thu, 03 Jun 2010 16:24:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Parse Plesk Maillog, Count Emails Per Domain</title>
		<link>http://www.usercore.com/parse-plesk-maillog-count-emails-per-domain/</link>
		<comments>http://www.usercore.com/parse-plesk-maillog-count-emails-per-domain/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 19:55:22 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server Architecture]]></category>
		<category><![CDATA[Shell Script]]></category>

		<guid isPermaLink="false">http://www.usercore.com/?p=71</guid>
		<description><![CDATA[I wanted to get a quick count of messages being sent to and from all my domains in plesk.   I wrote this script to get the mail domains from the plesk database.  Then I loop through them and grep a regex against the maillog file.  Since I&#8217;m actually using zgrep to look decompress yesterday&#8217;s maillog [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to get a quick count of messages being sent to and from all my domains in plesk.   I wrote this script to get the mail domains from the plesk database.  Then I loop through them and grep a regex against the maillog file.  Since I&#8217;m actually using zgrep to look decompress yesterday&#8217;s maillog file at the same time I get the counts, it&#8217;s a little processor intensive.  It takes about 10 seconds to run through 30 domains in a 5 meg gzipped file.  If I were to gunzip the file first and just grep it, this would go much quicker.  But I&#8217;m fine with a 10 second run time and the bonus of not having to trash a decompressed maillog file when I&#8217;m done.</p>
<p>Here&#8217;s the bash script I&#8217;ve saved as mailcount.sh:</p>
<p><code>#!/bin/sh</code></p>
<p><code>MYSQLPASS=`cat /etc/psa/.psa.shadow`</code></p>
<p><code>for DOMAIN in `mysql -uadmin -p$MYSQLPASS -e "select distinct domains.name from mail inner join domains on mail.dom_id=domains.id" -B -N psa`</code></p>
<p><code>do</code><br />
<code>echo $DOMAIN `zgrep -c -E "(to|from)=.+@$DOMAIN" /usr/local/psa/var/log/maillog.processed.1.gz`</code><br />
<code>done</code></p>
<p>Here&#8217;s a version that copies and gunzip&#8217;s the maillog before doing any processing.</p>
<p><code>#!/bin/sh</code></p>
<p><code>MYSQLPASS=`cat /etc/psa/.psa.shadow`</code></p>
<p><code># copy the log file before decompress</code><br />
<code>cp /usr/local/psa/var/log/maillog.processed.1.gz /usr/local/psa/var/log/maillog.processed.1-working.gz &#038;&#038;</code></p>
<p><code># decompress the log working file</code><br />
<code>gunzip /usr/local/psa/var/log/maillog.processed.1-working.gz</code></p>
<p><code>for DOMAIN in `mysql -uadmin -p$MYSQLPASS -e "select distinct domains.name from mail inner join domains on mail.dom_id=domains.id" -B -N psa`</code><br />
<code>do</code><br />
        <code>echo $DOMAIN `grep -c -E "(to|from)=.+@$DOMAIN" /usr/local/psa/var/log/maillog.processed.1-working`</code><br />
<code>done</code></p>
<p><code># remove the working log file</code><br />
<code>rm -f /usr/local/psa/var/log/maillog.processed.1-working &#038;&#038;</code><br />
<code>echo "file removed"</code><br />
<code>exit;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/parse-plesk-maillog-count-emails-per-domain/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Recursively Remove Files By Extension</title>
		<link>http://www.usercore.com/recursively-remove-files-by-extension/</link>
		<comments>http://www.usercore.com/recursively-remove-files-by-extension/#comments</comments>
		<pubDate>Wed, 21 May 2008 05:50:13 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[OS X / Unix]]></category>
		<category><![CDATA[Server Architecture]]></category>
		<category><![CDATA[Shell Script]]></category>

		<guid isPermaLink="false">http://www.usercore.com/?p=66</guid>
		<description><![CDATA[I&#8217;m finally getting around to cleaning out dreamweaver LCK files from a large website.  We have one developer that uses dreamweaver so these files are useless.  So we&#8217;ve got these LCK files all over the place in this site.  I&#8217;m just sick of looking at them.
Enter a shell one liner &#8230;
find . [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m finally getting around to cleaning out dreamweaver LCK files from a large website.  We have one developer that uses dreamweaver so these files are useless.  So we&#8217;ve got these LCK files all over the place in this site.  I&#8217;m just sick of looking at them.</p>
<p>Enter a shell one liner &#8230;</p>
<pre>find . -name '*.LCK' -type f -print0 | xargs -0 /bin/rm -f</pre>
<p>That command recursively looks in and under the directory I&#8217;m in for any files with the LCK extension and removes them.</p>
<p>Here&#8217;s a shell script you can save that will prompt you for an extension name to remove.</p>
<pre>#!/bin/sh

echo "Enter Extension"
read filepattern
echo "Files matching *.$filepattern will be removed."
echo "Is this correct? y|n"
read confirmation

if  [ $confirmation = y ]; then
	find $PWD -name "*.$filepattern" -type f -print0 | xargs -0 /bin/rm -f
else
	echo "quitting"
	exit;
fi</pre>
<p>Or if you don&#8217;t want any confirmation of the file extensions you&#8217;re about to delete.</p>
<pre>#!/bin/sh

echo "Enter Extension"
read filepattern
find $PWD -name "*.$filepattern" -type f -print0 | xargs -0 /bin/rm -f</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/recursively-remove-files-by-extension/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ColdFusion 8 and Plesk 8 on RedHat 5 via mod_jrun22</title>
		<link>http://www.usercore.com/coldfusion-8-and-plesk-8-on-redhat-5-via-mod_jrun22/</link>
		<comments>http://www.usercore.com/coldfusion-8-and-plesk-8-on-redhat-5-via-mod_jrun22/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 15:33:43 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server Architecture]]></category>

		<guid isPermaLink="false">http://www.usercore.com/2007/10/19/coldfusion-8-and-plesk-8-on-redhat-5-via-mod_jrun22/</guid>
		<description><![CDATA[After installing Plesk 8 on a RedHat 4 box I&#8217;ve needed to install Plesk 8 on Redhat 5.  RedHat 5 uses mod_jrun22.  Well it&#8217;s Apache 2.2 that uses mod_jrun22, so any version of Linux running Apache 2.2 will use this connector.
Since Plesk doesn&#8217;t support CF8 yet, it still writes out its apache directives looking for [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="/2007/08/29/coldfusion-8-and-plesk-8-on-red-hat-es-4/" title="Plesk 8 on RedHat 4">installing Plesk 8 on a RedHat 4 box</a> I&#8217;ve needed to install Plesk 8 on Redhat 5.  RedHat 5 uses mod_jrun22.  Well it&#8217;s Apache 2.2 that uses mod_jrun22, so any version of Linux running Apache 2.2 will use this connector.</p>
<p>Since Plesk doesn&#8217;t support CF8 yet, it still writes out its apache directives looking for mod_jrun20.  This needs to be modified to get per domain support for CF8 and Apache 2.2</p>
<p>Warning this will void your warranty!</p>
<p>I grepped the plesk install directory looking for mentions of jrun.  I found a binary file that matched: /usr/local/psa/admin/sbin/websrvmng</p>
<p>Looking at this file, on line 228 there&#8217;s a mention of mod_jrun20 in plain text.  This is the part of the websrvmng that writes out the http directives.  After making a backup of this file I took a chance at making an edit.  I simply changed mod_jrun20 to mod_jrun22 and saved the file.</p>
<p>Sure enough, plesk is happy.  Now when checking the ColdFusion box in a domain setup I see &lt;IfModule mod_jrun22.c&gt; in the httpd.include file for that domain rather than &lt;IfModule mod_jrun20.c&gt;.</p>
<p>Be careful here, I&#8217;m sure this change would not survive a plesk update to websrvmng.  After each plesk update double check this file to make sure it still points to mod_jrun22.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/coldfusion-8-and-plesk-8-on-redhat-5-via-mod_jrun22/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Backup all mysql databases as seperate sql files</title>
		<link>http://www.usercore.com/backup-all-mysql-databases-as-seperate-sql-files/</link>
		<comments>http://www.usercore.com/backup-all-mysql-databases-as-seperate-sql-files/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 04:49:49 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server Architecture]]></category>
		<category><![CDATA[Shell Script]]></category>

		<guid isPermaLink="false">http://www.usercore.com/2007/10/18/backup-all-mysql-databases-as-seperate-sql-files/</guid>
		<description><![CDATA[When backing up mysql databases via mysqldump you can either specify a database name to backup or use the &#8211;all-databases switch to dump all databases in one big file.  I&#8217;d like to backup all my databases but I&#8217;d like them in separate files so they&#8217;re easier to manage and I can do a quick [...]]]></description>
			<content:encoded><![CDATA[<p>When backing up mysql databases via mysqldump you can either specify a database name to backup or use the &#8211;all-databases switch to dump all databases in one big file.  I&#8217;d like to backup all my databases but I&#8217;d like them in separate files so they&#8217;re easier to manage and I can do a quick restore of a single db if needed.</p>
<p>I wrote the following bash script to help out.</p>
<pre>#!/bin/sh
# all db separate files

for customerdb in `mysql -uadmin -pweb7A8u -e "show databases" -B -N`
do
        mysqldump -uadmin -pweb7A8u $customerdb &gt; /var/www/vhosts/mysql/$customerdb.sql
done
</pre>
<p>Or on my plesk server, I&#8217;ve got a table in plesk&#8217;s psa database that lists out all the databases created within plesk.  A modification to this script reads the table names in the psa database table and makes backups of all those.</p>
<pre>#!/bin/sh

for customerdb in `mysql -uadmin -pweb7A8u -e "select name from data_bases" -B -N psa`
do
        mysqldump -uadmin -pweb7A8u --protocol=tcp --port=3307 $customerdb &gt; /storage/mysqlbackup/$customerdb.sql
done
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/backup-all-mysql-databases-as-seperate-sql-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion 8 and Plesk 8 on Red Hat ES 4</title>
		<link>http://www.usercore.com/coldfusion-8-and-plesk-8-on-red-hat-es-4/</link>
		<comments>http://www.usercore.com/coldfusion-8-and-plesk-8-on-red-hat-es-4/#comments</comments>
		<pubDate>Wed, 29 Aug 2007 14:18:52 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Server Architecture]]></category>

		<guid isPermaLink="false">http://www.usercore.com/2007/08/29/coldfusion-8-and-plesk-8-on-red-hat-es-4/</guid>
		<description><![CDATA[By default the Plesk control panel does not work with ColdFusion 8 yet.  It sounds like official support will be available in Q1 of &#8216;08.  I couldn&#8217;t wait that long.  I&#8217;ve been able to get Plesk 8 to work with ColdFusion 8 to a degree.
I assume you&#8217;re familiar with how to install [...]]]></description>
			<content:encoded><![CDATA[<p>By default the Plesk control panel does not work with ColdFusion 8 yet.  It sounds like official support will be available in Q1 of &#8216;08.  I couldn&#8217;t wait that long.  I&#8217;ve been able to get Plesk 8 to work with ColdFusion 8 to a degree.</p>
<p>I assume you&#8217;re familiar with how to install both separately so I&#8217;ll just be going over how to get both to play together.</p>
<p>In my world the Plesk control panel is just used simply used so that staff in our small software company can manage websites and not need to use a shell.  No one else even has access to Plesk.  Because of this, separation and security are not primary concerns.  Also, I have no need to let anyone or myself manage CF DSN&#8217;s from within Plesk, being able to do this in CF Admin is fine.</p>
<p>So what I&#8217;ve done is enable the ColdFusion checkbox used when setting up a website so that CF code can be used on a particular website.  Any ColdFusion management capabilities of Plesk are not enabled.</p>
<p><code>[root@yadda]# /usr/local/psa/bin/cfsetting -s /opt/coldfusion8<br />
I/O warning : failed to load external entity "/opt/coldfusion8/runtime/servers/default/SERVER-INF/jrun.xml"<br />
Config not parsed successfully.</code></p>
<p>Running that cfsetting command with the -s switch and the cf root from the commandline showed me an error plesk was running into.  I found jrun.xml in a different place.</p>
<p><code>/opt/coldfusion8/runtime/servers/coldfusion/SERVER-INF/jrun.xml</code></p>
<p>Since I think jrun.xml should be pretty much the same from CF7 to CF8, I&#8217;m going to just try pointing Plesk to the right place with a simlink.</p>
<p><code>cd /opt/coldfusion8/runtime/servers/ &amp;&amp; ln -s coldfusion default</code></p>
<p>Now I run the cfsetting command again.</p>
<p><code>/usr/local/psa/bin/cfsetting -s /opt/coldfusion8</code></p>
<p>Now I notice when starting up Apache that it&#8217;s trying to startup mod_jrun twice.  In my ColdFusion install I selected to build a mod_jrun connector to hook into Apache during the install.  Turns out that this conflicts with Plesk.  It&#8217;s a simple fix.  Just fire up your httpd.conf file and look for all instances of cfm or jrun.  You should see these entries toward the bottom of the file.  Just comment out the whole block of stuff by putting a hash sign in from of the lines.  Or you could always delete this stuff if you want.</p>
<p>For each website that you enable ColdFusion support for you should see this code in the httpd.include file for the site.<br />
<code><br />
JRunConfig Verbose false<br />
JRunConfig Apialloc false<br />
JRunConfig Ignoresuffixmap false<br />
JRunConfig Serverstore /opt/coldfusion8/runtime/lib/wsconfig/psa/jrunserver.store<br />
JRunConfig Bootstrap 127.0.0.1:51800<br />
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc</code></p>
<p>If you need to do a little troubleshooting, just make sure that you don&#8217;t see code like this in any of the global config files for apache.  As well make sure your jrunserver.store file exists.  And make sure you&#8217;re loading the mod_jrun module somewhere.  Plesk should drop this into zz010_psa_httpd.conf in the conf.d folder.  Make sure that exists: LoadModule jrun_module /opt/coldfusion8/runtime/lib/wsconfig/psa/mod_jrun20.so.  And lastly, double check your jrun.xml file you should see a mention of jrun broadcasting on port 51800 &#8230; you should see that in the jrun.servlet.jrpp.JRunProxyService block of the jrun.xml file.  It&#8217;s possible that jrun is running on a different port, if that&#8217;s the case you&#8217;ll need to change it to 51800.  Or somehow find out how to change the Plesk default.</p>
<p>If you have any troubles, post a comment here and I&#8217;ll see if I can help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/coldfusion-8-and-plesk-8-on-red-hat-es-4/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Using Subversion Part 2 &#8211; Auto Publish a Subversion commit</title>
		<link>http://www.usercore.com/using-subversion-part-2-auto-publish-a-subversion-commit/</link>
		<comments>http://www.usercore.com/using-subversion-part-2-auto-publish-a-subversion-commit/#comments</comments>
		<pubDate>Fri, 11 May 2007 15:34:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Server Architecture]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Shell Script]]></category>

		<guid isPermaLink="false">http://www.usercore.com/2007/05/11/using-subversion-part-2-auto-publish-a-subversion-commit/</guid>
		<description><![CDATA[Subversion comes prebuilt with a system of &#8220;hooks&#8221;.  Basically for most actions you would perform with a subversion repository you can also hook another program up to that action.  For example you can tell subversion to also update a site locally on each commit.
The first step in this process is to make sure [...]]]></description>
			<content:encoded><![CDATA[<p>Subversion comes prebuilt with a system of &#8220;hooks&#8221;.  Basically for most actions you would perform with a subversion repository you can also hook another program up to that action.  For example you can tell subversion to also update a site locally on each commit.</p>
<p>The first step in this process is to make sure that your website as it exists on your dev server has been checked out from subversion and that permissions and ownership is set as you want it (that part&#8217;s up to you and outside the scope of this post).  Let&#8217;s say I was working on the google site that was held in my repository in the &#8220;site&#8221; directory, I&#8217;d do something like:</p>
<pre>svn checkout file:///home/google/repository/site/trunk/ webroot/</pre>
<p>Now that a fresh checkout exists in the webroot, we&#8217;ll set things up to do an automatic subversion &#8220;update&#8221; on each commit.</p>
<p>From the subversion FAQ&#8217;s I found <a>this handy chunk of C code</a>.</p>
<pre>#include
#include
#include
int main(void)
{
  execl("/usr/bin/svn", "svn", "update", "/path/to/site/webroot/",
        (const char *) NULL);
  return(EXIT_FAILURE);
}</pre>
<p>The FAQ basically says that you take this chunk of code, add your own webroot path and compile it.  If you&#8217;re like me and you compile C code once every year, or perhaps never, here&#8217;s the specifics on a Linux box.  I use the gcc compiler and save the file as &#8220;update_site.c&#8221;</p>
<p>gcc update_site.c -o update_site</p>
<p>Not too complicated.</p>
<p>Now to preserve file permissions on your site properly, make sure that the owner of the website can execute this program from the svn hook but changing the mode of the compiled program to add the s switch.</p>
<p>chmod +s update_site</p>
<p>The last step is to tell subversion that it should run this update_site program after each commit.  In your repository navigate to the hooks directory on the file system.  Open up the file called post-commit.tmpl.  There&#8217;s a couple example lines at the bottom of mine that execute python scripts for mailing and logging the commit, I just comment those out by putting a # in from of the lines and then on the last line of the file add the full path to the new update_site script.  Like: /full/path/to/update_site</p>
<p>When you&#8217;re done, copy or move this post-commit.tmpl template to just post-commit and make sure that the webserver user can execute it.</p>
<p>With this process, you&#8217;re pretending that the webroot is the working directory for a subversion user.  This means that the .svn directories normally in your working directory will now be present in the webroot as well.  In case you have any passwords mixed in with you&#8217;re code, disable browsing of those directories in Apache.  Thankfully this isn&#8217;t often an issue with ColdFusion datasources but it still doesn&#8217;t hurt to be safe.</p>
<p>Add the following to your apache httpd.conf file:</p>
<p># Disallow browsing of Subversion working copy administrative dirs.</p>
<pre>    Order deny,allow
    Deny from all</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/using-subversion-part-2-auto-publish-a-subversion-commit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Subversion Part 1 &#8211; Build Subversion Repository with Apache htaccess authentication</title>
		<link>http://www.usercore.com/using-subversion-part-1-build-subversion-repository-with-apache-htaccess-authentication/</link>
		<comments>http://www.usercore.com/using-subversion-part-1-build-subversion-repository-with-apache-htaccess-authentication/#comments</comments>
		<pubDate>Thu, 10 May 2007 03:55:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Server Architecture]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Shell Script]]></category>

		<guid isPermaLink="false">http://www.usercore.com/2007/05/09/using-subversion-part-1-build-subversion-repository-with-apache-htaccess-authentication/</guid>
		<description><![CDATA[One of my responsibilities at Aslan is the Linux SysAdmin.  I&#8217;ve decided to replace my job with several tiny robots and take on the title of Linux Architect instead.  One of the main things to manage is a subversion repository for each project we work on.  Rather than keep documentation around for [...]]]></description>
			<content:encoded><![CDATA[<p>One of my responsibilities at Aslan is the Linux SysAdmin.  I&#8217;ve decided to replace my job with several tiny robots and take on the title of Linux Architect instead.  One of the main things to manage is a subversion repository for each project we work on.  Rather than keep documentation around for me to manually follow a set of steps for each new repo, I&#8217;m using the Bourne shell to write a script that will backup the existing site, create a repository, and make a login and password to use when accessing the repository though a local svn client.</p>
<p>Part 2 will show how to have a site automatically publish itself to the dev server on each commit.</p>
<p>For now, here&#8217;s some code for Part 1:</p>
<p><code>#!/bin/sh<br />
echo "creating svn repository and moving files ..."<br />
tar zcvf htdocs.tgz htdocs &amp;&amp;<br />
svnadmin create repository &amp;&amp;<br />
mkdir site &amp;&amp;<br />
mkdir site/trunk &amp;&amp;<br />
mv htdocs/* site/trunk/ &amp;&amp;<br />
rm -rf htdocs &amp;&amp;<br />
ln -s site/trunk htdocs &amp;&amp;<br />
svn import site file://$PWD/repository/site -m "initial import" &amp;&amp;</code></p>
<p><code><br />
echo "Who owns this directory?"<br />
read owner<br />
echo using ... $owner<br />
chown -R $owner:$owner * &amp;&amp;<br />
chown -R apache repository &amp;&amp;</code></p>
<p><code><br />
# make apache hook for subversion<br />
APACHESVN=/etc/httpd/conf.d/subv-$owner.conf<br />
touch $APACHESVN<br />
echo "" &gt;&gt; $APACHESVN<br />
echo "DAV svn" &gt;&gt; $APACHESVN<br />
echo "SVNPathAuthz off" &gt;&gt; $APACHESVN<br />
echo "SVNPath $PWD/repository" &gt;&gt; $APACHESVN<br />
echo "SSLRequireSSL" &gt;&gt; $APACHESVN<br />
echo "AuthType Basic" &gt;&gt; $APACHESVN<br />
echo "AuthName \"$owner\"" &gt;&gt; $APACHESVN<br />
echo "AuthUserFile $PWD/subv-auth" &gt;&gt; $APACHESVN<br />
echo "Require valid-user" &gt;&gt; $APACHESVN<br />
echo "" &gt;&gt; $APACHESVN</code></p>
<p><code><br />
echo "Supply a username for accessing the svn repository"<br />
read svnuser<br />
echo "thanks, how about a password"<br />
read svnpass<br />
echo "I'm using $svnuser and $svnpass"<br />
</code></p>
<p><code><br />
htpasswd -bc $PWD/svn-auth $svnuser $svnpass &amp;&amp;<br />
/etc/init.d/httpd stop &amp;&amp;<br />
/etc/init.d/httpd start &amp;&amp;<br />
echo "all done"<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/using-subversion-part-1-build-subversion-repository-with-apache-htaccess-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RoundCube &#8211; Ajax Webmail Client</title>
		<link>http://www.usercore.com/roundcube-ajax-webmail-client/</link>
		<comments>http://www.usercore.com/roundcube-ajax-webmail-client/#comments</comments>
		<pubDate>Wed, 09 May 2007 14:50:00 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Server Architecture]]></category>

		<guid isPermaLink="false">http://www.usercore.com/2007/05/09/roundcube-ajax-webmail-client/</guid>
		<description><![CDATA[The RoundCube webmail project does look pretty slick.  The developers look to have a solid roadmap lined up and a good, conservative set of features coming up.  I&#8217;d signed up for the dev list and am considering helping out in some capacity.
Update 6/12/07: I&#8217;ve been using Roundcube inhouse for the past couple of [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.roundcube.net">RoundCube webmail project</a> does look pretty slick.  The developers look to have a solid roadmap lined up and a good, conservative set of features coming up.  I&#8217;d signed up for the dev list and am considering helping out in some capacity.</p>
<p>Update 6/12/07: I&#8217;ve been using Roundcube inhouse for the past couple of weeks now.  It&#8217;s awesome.  I think this is the best webmail client out there.  Others have more features but not more functionality.  Roundcube does exactly what I need it to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.usercore.com/roundcube-ajax-webmail-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
