<?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>PHP Scripts and Programming</title>
	<atom:link href="http://www.warkensoft.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.warkensoft.com</link>
	<description>PHP scripts, programs and downloads for use by webmasters around the world.</description>
	<lastBuildDate>Thu, 14 Apr 2011 05:57:43 +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>AmazonFeed 2.1 Released</title>
		<link>http://www.warkensoft.com/2011/04/amazonfeed-2-1-released/</link>
		<comments>http://www.warkensoft.com/2011/04/amazonfeed-2-1-released/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 05:57:43 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[AmazonFeed Blog]]></category>
		<category><![CDATA[PHP Programming]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=428</guid>
		<description><![CDATA[I have finally released AmazonFeed v. 2.1. While not a major release, it updates the code to be compatible with WordPress 3.1.1 and fixes a few minor bugs. One bug for example would prevent your custom Amazon tags from being saved in certain situations. This has now been fixed. Hope you enjoy the plugin. If [...]]]></description>
			<content:encoded><![CDATA[<p>I have finally released AmazonFeed v. 2.1.  While not a major release, it updates the code to be compatible with WordPress 3.1.1 and fixes a few minor bugs.  One bug for example would prevent your custom Amazon tags from being saved in certain situations.  This has now been fixed.  Hope you enjoy the plugin.  If you have questions or comments, feel free to leave them in the comments associated with this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2011/04/amazonfeed-2-1-released/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Beware of Thieves like AmazonPress</title>
		<link>http://www.warkensoft.com/2010/04/beware-of-thieves-like-amazonpress/</link>
		<comments>http://www.warkensoft.com/2010/04/beware-of-thieves-like-amazonpress/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 16:14:32 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[AmazonFeed Blog]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress Programming]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=380</guid>
		<description><![CDATA[I was recently made aware of a couple of plugin thieves who have taken my code, rebranded it as their own (calling it AmazonPress), redirected the tip to themselves, and made it mandatory rather than optional with no notice to the website owner. In my opinion this constitutes theft from both myself as well as [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently made aware of a couple of plugin thieves who have taken my code, rebranded it as their own (calling it AmazonPress), redirected the tip to themselves, and made it mandatory rather than optional with no notice to the website owner.  In my opinion this constitutes theft from both myself as well as their clients/victims.  By not giving credit to me as the original author they are also in violation of the terms of the GPL.</p>
<p><strong>From their site:</strong> <em>&#8220;We have been online for about 4 years now, we decided to jump in and create an open source plugin for wordpress, it seems there is a need for an amazon plugin that actually works properly, so we decided to go ahead and develop one. Soon to come we will be creating new and awesome plugins.&#8221;</em></p>
<p>If you&#8217;re a plugin developer, you better watch out because they might be &#8220;creating&#8221; your plugin next!  If you already use their plugin, you may want to consider another option as they are stealing your commissions without your knowledge or consent.  May I recommend <a href="http://www.warkensoft.com/php-downloads/amazonfeed-wordpress-plugin/">the original AmazonFeed</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2010/04/beware-of-thieves-like-amazonpress/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Aptana and Eclipse Mouse Click Problems</title>
		<link>http://www.warkensoft.com/2010/01/aptana-and-eclipse-mouse-click-problems/</link>
		<comments>http://www.warkensoft.com/2010/01/aptana-and-eclipse-mouse-click-problems/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 20:21:49 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[Webmaster Resources]]></category>
		<category><![CDATA[Webmaster Tools]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=362</guid>
		<description><![CDATA[Recently, both the Aptana and Eclipse IDE&#8217;s have been giving me mouse clicking problems but I finally found the solution. To fix the problem you will need to do the following: Create a new empty file called aptana.sh that you will use to launch Aptana.  I store my install of Aptana in /home/username/Applications/aptana so I [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, both the Aptana and Eclipse IDE&#8217;s have been giving me mouse clicking problems but I finally found the solution.  To fix the problem you will need to do the following:</p>
<ol>
<li>Create a new empty file called <strong>aptana.sh</strong> that you will use to launch Aptana.  I store my install of Aptana in <strong>/home/username/Applications/aptana</strong> so I created the launch script in <strong>/home/username/Applications/aptana.sh</strong>.</li>
<li>Put the following code in the empty file and save it.  It will become what is called a wrapper script for launching the Aptana application.  Change the paths to match your environment.
<pre>#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/home/username/Applications/aptana/AptanaStudio</pre>
</li>
<li>Make the script executable.  You can do this by right-clicking it in gnome and selecting <strong>Properties -&gt; Permissions -&gt; Allow executing file as program</strong>.  For the purists: <strong>chmod +x /home/username/Applications/aptana.sh</strong></li>
<li>Create a launch script.  For the sake of simplicity, I create a launch script for it on my desktop by right-clicking on the desktop and selecting Create Launcher.<br />
<strong>Name: Aptana<br />
Command: /home/username/applications/aptana.sh</strong> (browse to and select the script you created)</li>
</ol>
<p>You should be able to use a very similar setup to fix mouse clicks in Eclipse as well.  Just change the paths and filenames where appropriate.  Keep in mind that the application for Aptana is called <strong>AptanaStudio</strong> whereas in Eclipse it is simply called <strong>eclipse</strong>.</p>
<p>You can now test your script by double clicking the launcher or running the shell script you created.  The mouse clicking problems should be fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2010/01/aptana-and-eclipse-mouse-click-problems/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Paginated Navigation Bar</title>
		<link>http://www.warkensoft.com/2009/12/paginated-navigation-bar/</link>
		<comments>http://www.warkensoft.com/2009/12/paginated-navigation-bar/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 20:30:15 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[learn php]]></category>
		<category><![CDATA[paged navigation]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=342</guid>
		<description><![CDATA[One area of web programming that many of us have frequently run into is the need to show a long list of items (whether database results or whatever) in a nicely formatted, easily navigable way.  Usually making the list user friendly involves creating some sort of paging system which allows the user to view various [...]]]></description>
			<content:encoded><![CDATA[<p>One area of web programming that many of us have frequently run into is the need to show a long list of items (whether database results or whatever) in a nicely formatted, easily navigable way.  Usually making the list user friendly involves creating some sort of paging system which allows the user to view various pages of results.  Unfortunately coding such a beast can quickly get ugly.</p>
<p>The following function will (hopefully) help you to make that process easier.  The function is designed to take a few input parameters such as the total number of results, and how many you want to display per page, and create a simple paged navigation bar for you.</p>
<pre>&lt;?php

/**
 * Get a paginated navigation bar
 *
 * This function will create and return the HTML for a paginated navigation bar
 * based on the total number of results passed in $num_results, and the value
 * found in $_GET['pageNumber'].  The programmer simply needs to call this function
 * with the appropriate value in $num_results, and use the value in $_GET['pageNumber']
 * to determine which results should be shown.
 * Creates a list of pages in the form of:
 * 1 .. 5 6 7 .. 50 51 .. 100
 * (in this case, you would be viewing page 6)
 *
 * Code taken from http://www.warkensoft.com/2009/12/paginated-navigation-bar/
 *
 * @global    int        $_GET['pageNumber'] is the current page of results being displayed.
 * @param    int     $num_results is the total number of results to be paged through.
 * @param    int     $num_per_page is the number of results to be shown per page.
 * @param    bool    $show set to true to write output to browser.
 *
 * @return    string    Returns the HTML code to display the nav bar.
 *
 */
function get_paged_nav($num_results, $num_per_page=10, $show=false)
{
 // Set this value to true if you want all pages to be shown,
 // otherwise the page list will be shortened.
 $full_page_list = false; 

 // Get the original URL from the server.
 $url = $_SERVER['REQUEST_URI'];

 // Initialize the output string.
 $output = '';

 // Remove query vars from the original URL.
 if(preg_match('#^([^\?]+)(.*)$#isu', $url, $regs))
 $url = $regs[1];

 // Shorten the get variable.
 $q = $_GET;

 // Determine which page we're on, or set to the first page.
 if(isset($q['pageNumber']) AND is_numeric($q['pageNumber'])) $page = $q['pageNumber'];
 else $page = 1;

 // Determine the total number of pages to be shown.
 $total_pages = ceil($num_results / $num_per_page);

 // Begin to loop through the pages creating the HTML code.
 for($i=1; $i&lt;=$total_pages; $i++)
 {
 // Assign a new page number value to the pageNumber query variable.
 $q['pageNumber'] = $i;

 // Initialize a new array for storage of the query variables.
 $tmp = array();
 foreach($q as $key=&gt;$value)
 $tmp[] = "$key=$value";

 // Create a new query string for the URL of the page to look at.
 $qvars = implode("&amp;amp;", $tmp);

 // Create the new URL for this page.
 $new_url = $url . '?' . $qvars;

 // Determine whether or not we're looking at this page.
 if($i != $page)
 {
 // Determine whether or not the page is worth showing a link for.
 // Allows us to shorten the list of pages.
 if($full_page_list == true
 OR $i == $page-1
 OR $i == $page+1
 OR $i == 1
 OR $i == $total_pages
 OR $i == floor($total_pages/2)
 OR $i == floor($total_pages/2)+1
 )
 {
 $output .= "&lt;a href='$new_url'&gt;$i&lt;/a&gt; ";
 }
 else
 $output .= '. ';
 }
 else
 {
 // This is the page we're looking at.
 $output .= "&lt;strong&gt;$i&lt;/strong&gt; ";
 }
 }

 // Remove extra dots from the list of pages, allowing it to be shortened.
 $output = ereg_replace('(\. ){2,}', ' .. ', $output);

 // Determine whether to show the HTML, or just return it.
 if($show) echo $output;

 return($output);
}

// Sample usage
$total_results = 100;
$results_per_page = 5;
$html = get_paged_nav($total_results, $results_per_page, false);
echo 'Page: ', $html;

?&gt;</pre>
<p>Here is a screenshot of what the output of the function looks like.  You can of course format this to look however you want with CSS.</p>
<div id="attachment_353" class="wp-caption alignnone" style="width: 205px"><img class="size-full wp-image-353" title="Screenshot of function output" src="http://www.warkensoft.com/wp-content/uploads/2009/12/screenshot_94.png" alt="Screenshot of function output" width="195" height="34" /><p class="wp-caption-text">Screenshot of function output</p></div>
<p>If you find this to be useful you&#8217;re welcome to <a href="http://www.warkensoft.com/wp-content/uploads/2009/12/get_paged_nav.zip">download it</a>.  The code is free to use and if you&#8217;re really nice you&#8217;ll link back to me or digg it.  (see the share and save controls under the post title.</p>
<p>If you have thoughts, comments or suggestions on how to improve it, I&#8217;d love to hear them in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/12/paginated-navigation-bar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AmazonFeed v1.9 Released</title>
		<link>http://www.warkensoft.com/2009/12/amazonfeed-v1-9-released/</link>
		<comments>http://www.warkensoft.com/2009/12/amazonfeed-v1-9-released/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 05:59:33 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[AmazonFeed Blog]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=334</guid>
		<description><![CDATA[I&#8217;m happy to announce I have completed work on AmazonFeed v. 1.9.  This version includes some very cool features including: Ability to sort the order in which products appear sitewide we well as customizing the sort order on individual posts. Ability to choose where the products appear on the posts/pages, whether below (default) or above [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m happy to announce I have completed work on AmazonFeed v. 1.9.  This version includes some very cool features including:</p>
<ul>
<li>Ability to sort the order in which products appear sitewide we well as customizing the sort order on individual posts.</li>
<li>Ability to choose where the products appear on the posts/pages, whether below (default) or above the post content.</li>
<li>Ability to choose whether or not specific products are displayed in association with individual keywords.  You can block specific products on the cache control page.</li>
</ul>
<p>Hope you like this new version.  You can <a href="http://wordpress.org/extend/plugins/amazonfeed/">download it from WordPress.org</a>.  I&#8217;d love to hear your thoughts in the comments area below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/12/amazonfeed-v1-9-released/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Secondary WordPress Loops</title>
		<link>http://www.warkensoft.com/2009/12/secondary-wordpress-loops/</link>
		<comments>http://www.warkensoft.com/2009/12/secondary-wordpress-loops/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 22:29:40 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[WordPress Programming]]></category>
		<category><![CDATA[secondary loops]]></category>
		<category><![CDATA[WordPress loops]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=315</guid>
		<description><![CDATA[In coding WordPress plugins and themes, I have often found it necessary to create secondary WordPress loops in the code to show a list of articles or posts on the site that wouldn&#8217;t normally appear on the page used to display them. For example, on the homepage of this site, I list articles from three [...]]]></description>
			<content:encoded><![CDATA[<p>In coding WordPress plugins and themes, I have often found it necessary to create secondary WordPress loops in the code to show a list of articles or posts on the site that wouldn&#8217;t normally appear on the page used to display them.  For example, on the homepage of this site, I list articles from three different blog categories in three different lists.  The way in which this is accomplished is relatively simple and straightforward.</p>
<p>First, you have to create a new instance of the WP_Query object from WordPress.  Due to some complications with the WordPress code, you will need to store the original $wp_query variable in a $temp variable, and override it with your own.  You would do this with something like the following code:</p>
<pre>&lt;?php
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
?&gt;</pre>
<p>This constructs a new WP Query object for you which you can then use for subsequent calls in the loop.  Once you&#8217;ve constructed this object, you will want to define your query variables and run your query.</p>
<pre>&lt;?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query = 'cat=5&amp;paged=' . $paged;    // Query to pull posts from category ID 5
$wp_query-&gt;query($query);  // Run the query on the $newposts object.
?&gt;</pre>
<p>Now that you have retrieved the necessary posts from your blog, you can begin your secondary loop.  The format is slightly different however, in that you should run the have_posts() methods on the new object, rather than as WP functions as is seen below.</p>
<pre>&lt;?php
if ($wp_query-&gt;have_posts()) :
  while ($wp_query-&gt;have_posts()) :
    $wp_query-&gt;the_post();
?&gt;</pre>
<p>&#8230; regular loop style WP code such as&#8230;</p>
<pre>&lt;li&gt;
  &lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark"
     title="Permanent Link to &lt;?php the_title(); ?&gt;"
     &gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;
&lt;/li&gt;</pre>
<p>&#8230; then close the loop.</p>
<pre>&lt;?php endwhile; endif; ?&gt;</pre>
<p>If necessary you can also add paging controls with the following:</p>
<pre>&lt;div class='navigation'&gt;
  &lt;div class='alignleft'&gt;
    &lt;?php next_posts_link('&amp;laquo; Older Entries') ?&gt;
  &lt;/div&gt;
  &lt;div class='alignright'&gt;
    &lt;?php previous_posts_link('Newer Entries &amp;raquo;') ?&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre>
<p>Finally, you need to restore the original $wp_query variable with what you stored in $temp.</p>
<pre>&lt;?php $wp_query = null; $wp_query = $temp; ?&gt;</pre>
<p>I&#8217;d love to hear your feedback on this or if you have any suggestions to improve it.  Feel free to <a href="http://www.warkensoft.com/2009/12/secondary-wordpress-loops/#respond">comment</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/12/secondary-wordpress-loops/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wicked Cool PHP &#8211; Review</title>
		<link>http://www.warkensoft.com/2009/11/wicked-cool-php-review/</link>
		<comments>http://www.warkensoft.com/2009/11/wicked-cool-php-review/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 08:59:16 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Programming]]></category>
		<category><![CDATA[Webmaster Resources]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[learn php]]></category>
		<category><![CDATA[php books]]></category>
		<category><![CDATA[sample php scripts]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=248</guid>
		<description><![CDATA[It&#8217;s not often that I write reviews about specific products, but I recently bought this book and couldn&#8217;t resist recommending it to anyone who has a basic grasp of PHP and is looking for some practical applications and scripts to work on. I have found it to be a great PHP scripting resource which walks [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_250" class="wp-caption alignleft" style="width: 131px"><a href="http://www.amazon.com/gp/product/1593271735?ie=UTF8&amp;tag=wicked-cool-php-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1593271735"><img class="size-full wp-image-250 " title="Wicked Cool PHP" src="http://www.warkensoft.com/wp-content/uploads/2009/11/512ppzO2mGL._SL160_.jpg" alt="Wicked Cool PHP" width="121" height="160" /></a><p class="wp-caption-text">Wicked Cool PHP</p></div>
<p>It&#8217;s not often that I write reviews about specific products, but I recently bought this book and couldn&#8217;t resist recommending it to anyone who has a basic grasp of PHP and is looking for some practical applications and scripts to work on.  I have found it to be a great PHP scripting resource which walks through a number of very useful scripts in detail, discussing exactly what is going on and how the script might be used in real life.</p>
<p>The authors, William Steinmetz and Brian Ward, do an excellent job of walking through each script showing how it works, what the potential pitfalls are and how it might be used in real life.  The best part is, there isn&#8217;t a single &#8220;Hello World&#8221; script in the book.  Rather the scripts are solutions to real life programming situations that most PHP programmers will run in to at one point or another.</p>
<p>I highly recommend <a title="Wicked Cool PHP on Amazon.com" href="http://www.amazon.com/gp/product/1593271735?ie=UTF8&amp;tag=wicked-cool-php-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1593271735"><strong>Wicked Cool PHP</strong></a> to anyone starting out with PHP who wants to go a little deeper than &#8220;Hello World&#8221; or wants to see real examples of practical PHP scripts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/11/wicked-cool-php-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AmazonFeed Security Updates</title>
		<link>http://www.warkensoft.com/2009/07/amazonfeed-security-updates/</link>
		<comments>http://www.warkensoft.com/2009/07/amazonfeed-security-updates/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 18:07:45 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[AmazonFeed Blog]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[amazonfeed]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=240</guid>
		<description><![CDATA[I am happy to announce that I have upgraded AmazonFeed to support the new Amazon security requirements coming into place on Aug. 15&#8242;th.  If you are currently using AmazonFeed v. 1.3 or lower, you will want to upgrade to 1.4 or higher before Aug. 15, in order to continue displaying Amazon products on your site [...]]]></description>
			<content:encoded><![CDATA[<p>I am happy to announce that I have upgraded AmazonFeed to support the new Amazon security requirements coming into place on Aug. 15&#8242;th.  If you are currently using AmazonFeed v. 1.3 or lower, you will want to upgrade to 1.4 or higher before Aug. 15, in order to continue displaying Amazon products on your site using this plugin.</p>
<p>You can <a href="http://www.warkensoft.com/products/amazonfeed-wordpress-plugin/">read more about or download AmazonFeed on this page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/07/amazonfeed-security-updates/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Captcha Insanity?</title>
		<link>http://www.warkensoft.com/2009/06/captcha-insanity/</link>
		<comments>http://www.warkensoft.com/2009/06/captcha-insanity/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 17:11:26 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Webmaster Tools]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=232</guid>
		<description><![CDATA[So, normally as a programmer, I appreciate the use CAPTCHAs to prevent spam bots from emailing me random junk, but this is when it get&#8217;s a little excessive&#8230; Originally posted on my friend&#8217;s website here.]]></description>
			<content:encoded><![CDATA[<p>So, normally as a programmer, I appreciate the use CAPTCHAs to prevent spam bots from emailing me random junk, but this is when it get&#8217;s a little excessive&#8230;</p>
<p><img class="alignnone size-medium wp-image-236" title="secur" src="http://www.warkensoft.com/wp-content/uploads/2009/06/secur-300x200.gif" alt="secur" width="300" height="200" /></p>
<p><a href="http://www.kimu.ca/?p=1347">Originally posted on my friend&#8217;s website here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/06/captcha-insanity/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Object Unit Testing</title>
		<link>http://www.warkensoft.com/2009/06/php-object-unit-testing/</link>
		<comments>http://www.warkensoft.com/2009/06/php-object-unit-testing/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 16:15:22 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Programming]]></category>
		<category><![CDATA[Webmaster Tools]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=228</guid>
		<description><![CDATA[I recently found a PHP tool that might actually be useful to a lot of developers in helping to keep their PHP code clean and help with bug tracking and diagnosis.  With PHP 5, we now have the ability to delve quite heavily into OOP based scripting.  This basically means creating PHP code as Objects [...]]]></description>
			<content:encoded><![CDATA[<p>I recently found a PHP tool that might actually be useful to a lot of developers in helping to keep their PHP code clean and help with bug tracking and diagnosis.  With PHP 5, we now have the ability to delve quite heavily into OOP based scripting.  This basically means creating PHP code as Objects instead of spaghetti code.  The tool I found recently is a simple framework for testing your newly created PHP objects.  It is called <a href="http://www.lastcraft.com/overview.php">SimpleTest</a>.</p>
<p>Basically, you can build your PHP objects and use this tool to create test cases in order to ensure that future upgrades don&#8217;t break existing code.  This is called Unit Testing.  Check it out.  I&#8217;d love to know how you like it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/06/php-object-unit-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Link Directory Plugin Work</title>
		<link>http://www.warkensoft.com/2009/04/link-directory-plugin-work/</link>
		<comments>http://www.warkensoft.com/2009/04/link-directory-plugin-work/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 04:18:50 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=206</guid>
		<description><![CDATA[Lately I've been spending a lot of late evenings working on a new WordPress plugin called "Link Directory".  Essentially it will allow the blog owner to run a link directory/portal on their WordPress blog without too much management headache.  Though I am still working out the rough spots, I already have it running here on this blog, replacing the old LinkDirectory hack I had built.  Feel free to <a href="http://www.warkensoft.com/link-directory/">browse around or suggest other links/categories</a>.



I've posted some screenshots of the administrative interface below.  I would love to hear some feedback on it as well as any suggestions you might have.]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been spending a lot of late evenings working on a new WordPress plugin called &#8220;Link Directory&#8221;.  Essentially it will allow the blog owner to run a link directory/portal on their WordPress blog without too much management headache.  Though I am still working out the rough spots, I already have it running here on this blog, replacing the old LinkDirectory hack I had built.  Feel free to <a href="http://www.warkensoft.com/link-directory/">browse around or suggest other links/categories</a>.</p>
<p>I&#8217;ve posted some screenshots of the administrative interface below.  I would love to hear some feedback on it as well as any suggestions you might have.  Feel free to post thoughts below.</p>
<p><strong>Administrative Screenshots:</strong></p>
<div id="attachment_208" class="wp-caption alignnone" style="width: 310px"><strong><strong><a href="http://www.warkensoft.com/wp-content/uploads/2009/04/screenshot_25.png"><img class="size-medium wp-image-208" title="Administrative Dashboard" src="http://www.warkensoft.com/wp-content/uploads/2009/04/screenshot_25-300x204.png" alt="Administrative Dashboard" width="300" height="204" /></a></strong></strong><p class="wp-caption-text">Administrative Dashboard</p></div>
<div id="attachment_209" class="wp-caption alignnone" style="width: 310px"><strong><strong><a href="http://www.warkensoft.com/wp-content/uploads/2009/04/screenshot_26.png"><img class="size-medium wp-image-209" title="Administrative Sub-Category View" src="http://www.warkensoft.com/wp-content/uploads/2009/04/screenshot_26-300x235.png" alt="Administrative Sub-Category View" width="300" height="235" /></a></strong></strong><p class="wp-caption-text">Administrative Sub-Category View</p></div>
<p>As mentioned above, I would love to hear any thoughts, suggestions or feature requests you might have.  Feel free to post them here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/04/link-directory-plugin-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is AmazonFeed Making You Money?</title>
		<link>http://www.warkensoft.com/2009/02/is-amazonfeed-making-you-money/</link>
		<comments>http://www.warkensoft.com/2009/02/is-amazonfeed-making-you-money/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 20:00:29 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[AmazonFeed Blog]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=175</guid>
		<description><![CDATA[Just for fun, we thought we'd run a poll to find out how helpful AmazonFeed has been to you and your website.  So, feel free to rate your success with it on the poll.  Read more to vote and see poll results.]]></description>
			<content:encoded><![CDATA[<p>Just for fun, we thought we&#8217;d run a poll to find out how helpful AmazonFeed has been to you and your website.  So, feel free to rate your success with it below.</p>
<div>
	<div class='democracy'>
		<strong class="poll-question">Has our AmazonFeed plugin helped you make money with your site?  If so, how much?</strong>
		<div class='dem-results'>
		<form action='http://www.warkensoft.com/wp-content/plugins/democracy/democracy.php' onsubmit='return dem_Vote(this)'>
		<ul>
			<li>
					<input type='radio' id='dem-choice-9' value='9' name='dem_poll_3' />
					<label for='dem-choice-9'>It hasn't helped at all.</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-10' value='10' name='dem_poll_3' />
					<label for='dem-choice-10'>Less than $10 / month</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-17' value='17' name='dem_poll_3' />
					<label for='dem-choice-17'>I don't use AmazonFeed on my site <a href='http://www.warkensoft.com/products/amazonfeed-wordpress-plugin/'>yet</a>.  ( why not? )</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-12' value='12' name='dem_poll_3' />
					<label for='dem-choice-12'>$21 to $50 / month</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-14' value='14' name='dem_poll_3' />
					<label for='dem-choice-14'>$100 to $500 / month</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-13' value='13' name='dem_poll_3' />
					<label for='dem-choice-13'>$50 to $100 / month</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-15' value='15' name='dem_poll_3' />
					<label for='dem-choice-15'>$500 to $1000 / month</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-11' value='11' name='dem_poll_3' />
					<label for='dem-choice-11'>$11 to $20 / month</label>
			</li>
			<li>
					<input type='radio' id='dem-choice-16' value='16' name='dem_poll_3' />
					<label for='dem-choice-16'>More than $1000 / month ( I hope you're <a href="http://www.warkensoft.com/products/donate/">tipping</a>... :D )</label>
			</li>
		</ul>
			<input type='hidden' name='dem_poll_id' value='3' />
			<input type='hidden' name='dem_action' value='vote' />
			<input type='submit' class='dem-vote-button' value='Vote' />
			<a href='/feed/?dem_action=view&amp;dem_poll_id=3' onclick='return dem_getVotes("http://www.warkensoft.com/wp-content/plugins/democracy/democracy.php?dem_action=view&amp;dem_poll_id=3", this)' rel='nofollow' class='dem-vote-link'>View Results</a>
		</form>
		</div>
	</div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2009/02/is-amazonfeed-making-you-money/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin: Related Products from Amazon.com</title>
		<link>http://www.warkensoft.com/2008/11/wordpress-plugin-related-products-from-amazoncom/</link>
		<comments>http://www.warkensoft.com/2008/11/wordpress-plugin-related-products-from-amazoncom/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 06:40:52 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Programming]]></category>
		<category><![CDATA[Revenue Building]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=77</guid>
		<description><![CDATA[This plugin will allow you to make money on your website as an Amazon.com affiliate.  It enables you to automatically advertise products from Amazon.com which are specifically related to the topic you are writing about. Features: Automatically load category or tag related products from Amazon.com. Earn rewards as an affiliate, simply by entering your affiliate [...]]]></description>
			<content:encoded><![CDATA[<p>This plugin will allow you to make money on your website as an Amazon.com affiliate.  It enables you to automatically advertise products from Amazon.com which are specifically related to the topic you are writing about.</p>
<p><strong>Features:</strong></p>
<ul>
<li><strong>Automatically</strong> load category or tag related products from Amazon.com.</li>
<li><strong>Earn rewards</strong> as an affiliate, simply by entering your affiliate tracking code.</li>
<li><strong>Provide valuable additional content</strong> to your visitors on the topics of your posts.</li>
<li><strong>Total control</strong> to tailor results for any given post.</li>
<li><strong>Excellent content caching</strong> for lightning fast response times.</li>
<li><strong>Ability to disable</strong> related products from being displayed at all on any given post.</li>
<li><strong>NOT JavaScript based</strong>, meaning it is not hidden from users with no JavaScript capability.</li>
</ul>
<p><span id="more-77"></span><br />
<strong>How it Works:</strong></p>
<p>This plugin will allow you to turn your WordPress website or blog into a money making machine while at the same time offering valuable additional related materials to your visitors.  It will <strong>automatically</strong> search for and display products from Amazon.com which are <strong>specifically related to the topics you write about</strong>.  Once you install the plugin, you simply have to decide if you want to show products related to your Categories or Tags and the plugin can do the rest.  All you have to do is continue writing about your favorite subjects and the plugin will offer related products to your visitors.</p>
<p>Even though it is capable of being fully automatic in this way, it also includes powerful controls to tailor exactly how it functions.  You can customize the keywords used for searching on any given post or even disable the plugin completely.  You can also customize the heading that is shown, the number of results shown and many other aspects of how it functions.</p>
<p><strong>Get the Plugin:</strong></p>
<p>You can find the <a title="AmazonFeed WordPress Plugin" href="http://www.warkensoft.com/products/amazonfeed-wordpress-plugin/">AmazonFeed plugin homepage here</a>.</p>
<p>Want to see it in action?  I have it running at the bottom of this article.  Notice that if you hit refresh, new content may be displayed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2008/11/wordpress-plugin-related-products-from-amazoncom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SendFeed WordPress Plugin</title>
		<link>http://www.warkensoft.com/2008/11/sendfeed-wordpress-plugin/</link>
		<comments>http://www.warkensoft.com/2008/11/sendfeed-wordpress-plugin/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 00:41:23 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Programming]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=66</guid>
		<description><![CDATA[I&#8217;m very excited to announce the release of SendFeed, a brand new RSS/XML Feed to Email WordPress plugin. The SendFeed Plugin for WordPress allows you to send your latest post from your RSS feed to an external Mailing List Manager in both text and HTML formats. It is capable of sending messages out immediately, at [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very excited to announce the release of <a title="SendFeed RSS/XML to EMail WordPress Plugin" href="http://truthmedia.com/wordpress/sendfeed/">SendFeed</a>, a brand new RSS/XML Feed to Email WordPress plugin.</p>
<p>The SendFeed Plugin for WordPress allows you to send your latest post from your RSS feed to an external Mailing List Manager in both text and HTML formats.</p>
<p>It is capable of sending messages out immediately, at predefined intervals such as daily/weekly/monthly or manually.  Also, the text and HTML templates are completely customizable on a per feed basis so you can tailor the emails to suit the list or feed you are using.</p>
<p>The plugin was developed by me while working for <a title="TruthMedia Internet Group" href="http://truthmedia.com/">TruthMedia</a>.  We have just released the very first edition of the plugin on WordPress.org.</p>
<p>You can find it at: <a title="SendFeed RSS/XML to EMail WordPress Plugin" onclick="javascript:pageTracker._trackPageview('/outgoing/wordpress.org/extend/plugins/sendfeed/');" href="http://wordpress.org/extend/plugins/sendfeed/" target="_blank">http://wordpress.org/extend/plugins/sendfeed/</a></p>
<p>Original Post Here: <a href="http://truthmedia.com/2008/11/19/sendfeed-v-11-released/">http://truthmedia.com/2008/11/19/sendfeed-v-11-released/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2008/11/sendfeed-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FormContact 1.1 with PHP5 Support</title>
		<link>http://www.warkensoft.com/2008/06/formcontact-11-with-php5-support/</link>
		<comments>http://www.warkensoft.com/2008/06/formcontact-11-with-php5-support/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 19:42:24 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Scripts]]></category>
		<category><![CDATA[Webmaster Tools]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=64</guid>
		<description><![CDATA[I have recently upgraded FormContact to version 1.1 which now has much better built-in PHP5 support. The FormContact 1.1 system will allow you to handle most Form-To-Email functions required by a website. It can be set up to take all the submitted form data and convert it to a readable email format. It can be [...]]]></description>
			<content:encoded><![CDATA[<p>I have recently upgraded FormContact to version 1.1 which now has much better built-in PHP5 support.</p>
<p>The FormContact 1.1 system will allow you to handle most Form-To-Email functions required by a website. It can be set up to take all the submitted form data and convert it to a readable email format. It can be customized to send users to a &#8220;thank you&#8221; page once the form data has been filled out, and certain form fields can be marked as being required in order for the form to be completed.</p>
<p>It also has the added ability for sending an <strong>automated response</strong> to the person who fills out the form. Different responses can be used for different forms, and can even be personalized to the user, based on form fields they enter.</p>
<p><a href="http://www.warkensoft.com/about-me/">Click here to read more</a> about the person who created these resources and is offering them for you to use.</p>
<p><strong>Requirements:</strong> PHP 4 or 5</p>
<p><strong>Features:</strong><br />
<em>Form Submission</em><br />
Convert form submitted data to an email which can be received by the webmaster.</p>
<p><em>Destination Email</em><br />
Set one or multiple recipients of the email generated from the form data.</p>
<p><em>Required Fields</em><br />
The form can be set up to require certain fields to be filled out before a successful submission can be made.</p>
<p><em>Followup URL</em><br />
Send your website visitors to a &#8220;Thank You&#8221; page once they have successfully filled out the form on your website.</p>
<p><em>Automated Response</em><br />
In addition to emailing the form data to the webmaster, the FormContact system can create a customized email response to be set back to the user who filled out the form, based on what data they have entered into the form. Excellent for followup of clients, adding that small extra touch of connection to let them know that they have been heard, and will be contacted further shortly.</p>
<p><strong>Download: </strong><a href="http://www.warkensoft.com/dl.php?filename=form_contact_plus.zip">Click Here</a></p>
<h4>Website Hosting</h4>
<p>If you&#8217;re looking for somewhere to host your own web creation, we would highly recommend <a href="http://phpads.warkensoft.com/adclick.php?bannerid=7&amp;zoneid=9&amp;source=&amp;dest=http://www.warkensoft.com/2006/10/hosting-coupons/&amp;ismap="><strong>DreamHost</strong></a>. Offering 167 Gig&#8217;s of storage space, 1.6 TB of bandwidth, PHP, MySQL and a host of other features, they&#8217;ll most likely be more than adequate for your website needs. And with a 97 day money back guarantee you can&#8217;t go wrong! <a href="http://phpads.warkensoft.com/adclick.php?bannerid=7&amp;zoneid=9&amp;source=&amp;dest=http://www.warkensoft.com/2006/10/hosting-coupons/&amp;ismap="><strong>Visit DreamHost for more information about what they offer</strong></a>.</p>
<p>And now, we&#8217;re offering $50 OFF coupons as a special benefit to our website visitors.  <a href="http://www.warkensoft.com/2006/10/hosting-coupons/">Click here for more information</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2008/06/formcontact-11-with-php5-support/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Website Subversion Backup</title>
		<link>http://www.warkensoft.com/2008/04/website-subversion-backup/</link>
		<comments>http://www.warkensoft.com/2008/04/website-subversion-backup/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 00:00:45 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Programming]]></category>
		<category><![CDATA[PHP Scripts]]></category>
		<category><![CDATA[Webmaster Tools]]></category>
		<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[website backups]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=61</guid>
		<description><![CDATA[As a PHP coder and web developer, I have recently discovered and fallen in love with a tool which helps to keep my source code safely backed up. This tool is called Subversion and &#8220;it is used to maintain current and historical versions of files such as source code, web pages, and documentation.&#8221; (1) In [...]]]></description>
			<content:encoded><![CDATA[<p>As a PHP coder and web developer, I have recently discovered and fallen in love with a tool which helps to keep my source code safely backed up.  This tool is called <a href="http://en.wikipedia.org/wiki/Subversion_(software)">Subversion</a> and &#8220;it is used to maintain current and historical versions of files such as source code, web pages, and documentation.&#8221; (<a href="#references">1</a>)  In simple terms, it allows you to back up your files and keeps a history of all the versions of files that you send to it.</p>
<p>This is VERY useful when doing PHP development because as you develop your application you can commit versions of the files to the Subversion (SVN) repository and it will keep track of all the changes you have made.  If necessary, you can even revert back to older versions.</p>
<p>One of the difficulties that I have run into while doing website development is how to keep the live remote website synchronized with my local working copy.  This is especially true of WordPress installations where editors may be uploading new pictures or documents to the site on a daily basis.  If you are not constantly downloading the latest copy of the website, your local copy will be out-of-date and may cause problems in your development.</p>
<p><strong>Subversion to the Rescue:</strong></p>
<p>However, I have come up with a relatively simple solution to this problem, which utilizes the controls within Subversion, to both back up the data on the LIVE website, as well as providing version control for all the site data as a whole.  For the sake of simplicity, I will be using a WordPress website as my example, but the concepts here could be applied to essentially any website.</p>
<p>One of the useful features of Subversion is the ability to run what they refer to as &#8220;hook scripts&#8221; at different points in the versioning process.  For example, an SVN repository can be configured to run a set of scripts directly after any data is &#8220;committed&#8221; to it. (sending data to the repository is called &#8220;committing&#8221; the data)  For this example, this is exactly the functionality we are going to be using.</p>
<p>Before I go any further though, let&#8217;s go over some of the requirements for setting up a website and subversion repository in this way.</p>
<p><span id="more-61"></span><strong>WARNING: The following tutorial could seriously damage/destroy your website and/or server if you don&#8217;t know what you&#8217;re doing.  We take no responsibility for any problems which may occur from following these instructions. </strong></p>
<p><strong>We HIGHLY recommend that you not employ these ideas on a LIVE webserver until you have thoroughly tested things in a development environment and fully understand how things work. Proceed at your own risk.  You have been warned!<br />
</strong></p>
<p><strong>Requirements:</strong></p>
<ol>
<li>You will need shell access to the server.</li>
<li>The subversion repository must be on the same server as the website, and you will need to be able to run subversion commands on the server.</li>
<li>The user which runs the subversion repository, must also have access to add and remove files from the live website.</li>
</ol>
<p><strong>Terminology:</strong></p>
<p>Subversion Repository (SVN): The subversion repository which will contain all the website data.  Needs to be located on the same server as the website and have access to the website&#8217;s files.</p>
<p>Local Working Copy (LWC): Term used to refer to the Working Copy of the SVN repository stored on your personal computer.</p>
<p>Remote Working Copy (RWC): You will need to be able to set up a remote working copy of the SVN repository on the same server as the website and SVN.</p>
<p><strong>Setting it Up:</strong></p>
<p>The first step in setting up a website to use SVN in this way, is to set up the SVN repository itself.  I will not go into detail on how to set up an SVN repository, but for the sake of the article, let&#8217;s assume we can create the SVN repository at the path &#8220;/svnRepository/&#8221; on the remote server.  We will create the subversion repository by typing the following on the remote server shell.</p>
<blockquote><p>svnadmin create /svnRepository</p></blockquote>
<p>The next important piece of the puzzle we need is the Remote Working Copy.  Let&#8217;s assume that we can store the RWC at the path &#8220;/remoteWorkingCopy/&#8221; on the remote server.  To do this, we will enter the following shell command:</p>
<blockquote><p>svn checkout file:///svnRepository/ /remoteWorkingCopy/</p></blockquote>
<p>Finally, we will make the assumption that you already have a website set up on the remote server, and it is located at the path &#8220;/www/&#8221;.</p>
<p>In order to set this up properly you will need to ensure that you can connect to the SVN repository.  Though I will not go into the details of how to use Subversion here in this article, you need to be able to check out a copy of the remote SVN repository to your local machine.</p>
<p><strong>Synchronizing the Website with SVN:</strong></p>
<p>The next step in this process is to synchronize the current website with the SVN repository.  To do this, we will be working on the server and will need to copy all the files from the website into the Remote Working Copy.  To do this you would enter the following commands on the remote shell:</p>
<blockquote><p>cp -r /www/* /remoteWorkingCopy/</p>
<p>cp -r /www/.ht* /remoteWorkingCopy/</p></blockquote>
<p>These two commands should copy all files from the website over to the RWC.  Now, unfortunately, the RWC doesn&#8217;t yet know what to do with these files, so we have to instruct it that all the files should be added to the SVN repository.  We would do this with the following command:</p>
<blockquote><p>svn stat /remoteWorkingCopy/ | grep ^? | sed s/^?// | xargs -r -i svn add &#8220;{}&#8221;</p></blockquote>
<p>As indicated above, this command should prepare all files you have just copied to the RWC to be committed to the SVN repository.  The final step is to run the actual &#8220;commit&#8221; command, and you would do that as so:</p>
<blockquote><p>svn commit -m &#8220;Website Backup&#8221; /remoteWorkingCopy/</p></blockquote>
<p>This command will go through the RWC and send all the new files you just added to the SVN repository where they are versioned and backed up.</p>
<p><strong>Set Up Automatic Website Updates on POST-COMMIT:</strong></p>
<p>We now have copy of the website stored in the SVN repository, as well as in the Remote Working Copy, but unless we take further steps, these filesystems will very shortly be out-of-date with the LIVE website.  We also don&#8217;t yet have a way to get changes that we make to the SVN files back onto the website.</p>
<p>In order to do this we will need to set up a POST-COMMIT hook script.  This is a script in the SVN repository which runs after every time a commit is called.  In order to install the script, simply place it in your /svnRepository/hooks/ folder and make it writable.  The script is as follows:</p>
<blockquote><p>#!/bin/sh</p>
<p># POST-COMMIT HOOK</p>
<p># Website BasePath<br />
BASEPATH=&#8221;/www&#8221;</p>
<p># Repository Path<br />
REPOSITORY=&#8221;file:///svnRepository&#8221;</p>
<p># Remote Working copy<br />
LOCALWC=&#8221;/remoteWorkingCopy/&#8221;</p>
<p>REPOS=&#8221;$1&#8243;<br />
REV=&#8221;$2&#8243;</p>
<p># Update the current working copy<br />
echo &#8220;Updating the working copy &#8221; $LOCALWC<br />
svn update $LOCALWC</p>
<p># Propogate deletes, adds and modifies from the SVN repository to the website.<br />
echo &#8220;Doing Deletes!&#8221;<br />
svn log -qvr $REV $LOCALWC | grep &#8220;^   D&#8221; | sed &#8220;s/^   D //&#8221; | sed -r &#8220;s# \(.+\)##&#8221; | xargs -r -i rm -rf $BASEPATH{}</p>
<p>echo &#8220;Doing Adds!&#8221;<br />
svn log -qvr $REV $LOCALWC | grep &#8220;^   A&#8221; | sed &#8220;s/^   A //&#8221; | sed -r &#8220;s# \(.+\)##&#8221; | xargs -r -i svn export &#8211;force $LOCALWC{} $BASEPATH{}</p>
<p>echo &#8220;Doing Mods!&#8221;<br />
svn log -qvr $REV $LOCALWC | grep &#8220;^   M&#8221; | sed &#8220;s/^   M //&#8221; | sed -r &#8220;s# \(.+\)##&#8221; | xargs -r -i svn export &#8211;force $LOCALWC{} $BASEPATH{}</p>
<p># Copy current website files to current working copy<br />
echo &#8220;Copying current website files to working copy&#8221;<br />
cp -r $BASEPATH/* $LOCALWC<br />
cp -r $BASEPATH/.ht* $LOCALWC</p>
<p># Automatically add all added and changed files from the website to the SVN repository.<br />
echo &#8220;Adding and changing files&#8221;<br />
svn stat $LOCALWC | grep ^? | sed s/^?// | xargs -r -i svn add &#8220;{}&#8221;</p>
<p># Commit changes from working copy to SVN Repository<br />
echo &#8220;Running commit&#8221;<br />
svn commit -m &#8220;Website Backup&#8221; $LOCALWC</p></blockquote>
<p>When you put this script in your /svnRepository/hooks folder and make it executable, the script will be run every time you commit something to the repository.  Here is an outline of what it does:</p>
<p><strong>Steps in Detail on Commit:</strong></p>
<ol>
<li>User runs UPDATE on their local machine to get latest info from repository</li>
<li>COMMIT is called</li>
<li>UPDATE the remote working copy.</li>
<li>Check svn log for deleted files in the Remote Working Copy and remove them from the website.</li>
<li>Check svn log for added files and export them to the website.</li>
<li>Check svn log for modified files and export them to the website.</li>
<li>Copy all live website files to Remote Working Copy.</li>
<li>Add all new files to be versioned in the RWC.</li>
<li>Commit all additions and changes from the RWC to the SVN repository.</li>
<li>The next time the user runs an update, it would get the latest files from the repository which should be synced to the website.</li>
</ol>
<p><strong>Conclusion:</strong></p>
<p>The end result of this process is that when changes are made on your local machine and committed to the SVN repository, the script will run, it will synchronize the website with the RWC and then will deploy your changes TO the website.</p>
<p>I hope you have found this tutorial useful.  As mentioned above, be very careful as you work through the process of running these scripts and commands, as you could potentially cause major breakdowns on your website.  <strong>Again, we take NO RESPONSIBILITY for any problems which may result from following this tutorial.  Follow these instructions at your own risk.</strong></p>
<p>I would love to hear any feedback you may have about this article.  I would also like to hear from developers who may have more experience with this topic than I do and would be willing to make suggestions for improvement.</p>
<p><a id="references" name="references"><strong>References:</strong></a></p>
<ol>
<li><a href="http://en.wikipedia.org/wiki/Subversion_(software)">Subversion (software)</a> &#8211; From Wikipedia, the free encyclopedia</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2008/04/website-subversion-backup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FormBuilder WordPress Plugin</title>
		<link>http://www.warkensoft.com/2008/04/formbuilder-wordpress-plugin/</link>
		<comments>http://www.warkensoft.com/2008/04/formbuilder-wordpress-plugin/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 20:21:31 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Programming]]></category>
		<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/?p=60</guid>
		<description><![CDATA[I am very excited to announce the public (beta) release of the FormBuilder WordPress plugin on WordPress.org. FormBuilder is a project which was inspired, in part, by my work on FormContact 1.0 and came about as a result of our need for a good yet simple form building utility for WordPress. The plugin was developed [...]]]></description>
			<content:encoded><![CDATA[<p>I am very excited to announce the public (beta) release of the <a href="http://truthmedia.com/wordpress/formbuilder/">FormBuilder WordPress plugin</a> on <a href="http://wordpress.org/extend/plugins/formbuilder/">WordPress.org</a>.  FormBuilder is a project which was inspired, in part, by my work on FormContact 1.0 and came about as a result of our need for a good yet simple form building utility for WordPress.</p>
<p>The plugin was developed by me while working for TruthMedia.  At the time of writing, it is at v. 0.57 and is compatible with WordPress 1.5 &#8211; 2.5.  If you have a WordPress blog already, why not check it out!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2008/04/formbuilder-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress and Multiple Installations of WordPress</title>
		<link>http://www.warkensoft.com/2007/11/wordpress-and-multiple-installations-of-wordpress/</link>
		<comments>http://www.warkensoft.com/2007/11/wordpress-and-multiple-installations-of-wordpress/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 02:37:35 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/2007/11/wordpress-and-multiple-installations-of-wordpress/</guid>
		<description><![CDATA[I recently was directed to an article on Nerdaphernalia discussing how to turn a single WordPress installation into multiple blogs. What a lovely concept! Instead of having to maintain multiple installations with an array of plugins and themes to ensure continue to work, you can run one filesystem, managing multiple blogs. Nerdaphernalia » Virtual Multiblog [...]]]></description>
			<content:encoded><![CDATA[<p>I recently was directed to an article on <a href="http://striderweb.com/nerdaphernalia/">Nerdaphernalia</a> discussing how to turn a single WordPress installation into multiple blogs.  What a lovely concept!  Instead of having to maintain multiple installations with an  array of plugins and themes to ensure continue to work, you can run one filesystem, managing multiple blogs.</p>
<p><a href="http://striderweb.com/nerdaphernalia/features/virtual-multiblog/">Nerdaphernalia » Virtual Multiblog for WordPress</a></p>
<p>Lately, I have been increasingly impressed by the flexibility and power of using <a href="http://www.wordpress.org">WordPress</a> as a Content Management System.  The organization I work for has been exploring all the possibilities of using it as a fully functional CMS and so far we have been very impressed.  What it doesn&#8217;t do straight out of the box, there are plugins for.  And as a PHP developer, if I can&#8217;t find a plugin, I can make one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2007/11/wordpress-and-multiple-installations-of-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Webmaster Tool &#8211; The Regular Expression Editor</title>
		<link>http://www.warkensoft.com/2007/06/new-webmaster-tool-the-regular-expression-editor/</link>
		<comments>http://www.warkensoft.com/2007/06/new-webmaster-tool-the-regular-expression-editor/#comments</comments>
		<pubDate>Sat, 16 Jun 2007 01:00:59 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Webmaster Resources]]></category>
		<category><![CDATA[Webmaster Tools]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/2007/06/new-webmaster-tool-the-regular-expression-editor/</guid>
		<description><![CDATA[WarkenSoft Productions is proud to announce the development of a new tool for use on our site. The Regular Expression editor will allow you to test and edit any regular expressions that you have been struggling with to develop. Made available for free to our visitors, we hope you enjoy the tool and find it [...]]]></description>
			<content:encoded><![CDATA[<p>WarkenSoft Productions is proud to announce the development of a new tool for use on our site.  <a href="http://www.warkensoft.com/products/regular-expression-editor-and-tester/"><strong>The Regular Expression editor</strong></a> will allow you to test and edit any regular expressions that you have been struggling with to develop.  Made available for free to our visitors, we hope you enjoy the tool and find it to be useful.</p>
<p>If you have any suggestions for improvements or comments about it, feel free to leave them in the comments area below.  Also, we&#8217;re always on the look out for good regular expressions, so if you feel that you have one or a few that might be useful to the other visitors to this site, feel free to mention them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2007/06/new-webmaster-tool-the-regular-expression-editor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Function to Convert LineBreaks to NewLines</title>
		<link>http://www.warkensoft.com/2007/06/php-function-to-convert-linebreaks-to-newlines/</link>
		<comments>http://www.warkensoft.com/2007/06/php-function-to-convert-linebreaks-to-newlines/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 17:23:28 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/2007/06/php-function-to-convert-linebreaks-to-newlines/</guid>
		<description><![CDATA[While PHP has a very nice little function (nl2br) to convert newlines (\n) to line breaks (&#60;br&#62;), moving in the opposite direction is not quite so easy. This function should hopefully help to allow you to convert line breaks to new lines. &#60;?php /* This function will convert line breaks or other tags passed in [...]]]></description>
			<content:encoded><![CDATA[<p>While PHP has a very nice little function (nl2br) to convert newlines (\n) to line breaks (&lt;br&gt;), moving in the opposite direction is not quite so easy.  This function should hopefully help to allow you to convert line breaks to new lines.</p>
<pre>&lt;?php

/* This function will convert line breaks or other tags passed in the $tags variable
to linebreaks.  Multiple $tags must be separated by spaces, and must consist of the
regular tag text.  Ie. $result = br2nl($text_to_filter, "br p blockquote") */
function br2nl($text, $tags = "br")
{
 $tags = explode(" ", $tags);

 foreach($tags as $tag)
 {
 $text = eregi_replace("&lt;" . $tag . "[^&gt;]*&gt;", "\n", $text);
 $text = eregi_replace("&lt;/" . $tag . "[^&gt;]*&gt;", "\n", $text);
 }

 return($text);
}

// Usage:
 $text_to_filter = "&lt;p&gt;This is my &lt;br&gt;sample&lt;br&gt;text.  The default code listed here " .
"should replace the br's with new lines.&lt;/p&gt;&lt;p&gt;The second example is more advanced, " .
"stripping out both the BR's as well as the P tags.&lt;/p&gt;";

 // Example of replacing BR tags (default)
 $result = br2nl($text_to_filter);
 echo "&lt;pre&gt;$result&lt;/pre&gt;";

 // Example of replacing both BR and P tags
 $result = br2nl($text_to_filter, "br p");
 echo "&lt;pre&gt;$result&lt;/pre&gt;";

?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2007/06/php-function-to-convert-linebreaks-to-newlines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New FormBuilder WordPress Plugin!</title>
		<link>http://www.warkensoft.com/2007/05/new-formbuilder-wordpress-plugin/</link>
		<comments>http://www.warkensoft.com/2007/05/new-formbuilder-wordpress-plugin/#comments</comments>
		<pubDate>Wed, 30 May 2007 19:15:24 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[PHP Scripts]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/2007/05/new-formbuilder-wordpress-plugin/</guid>
		<description><![CDATA[We&#8217;re excited to announce that a partner site of ours has published a brand new FormBuilder plugin for WordPress, which allows the owner to easily and quickly create email input forms on their blog. The FormBuilder plugin is a WordPress plugin that allows the blog or website owner to easily and quickly create forms for [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re excited to announce that a partner site of ours has published a brand new <a href="http://truthmedia.com/wordpress/formbuilder/" target="_blank">FormBuilder plugin for WordPress</a>, which allows the owner to easily and quickly create email input forms on their blog.</p>
<blockquote><p>The FormBuilder plugin is a WordPress plugin that allows the blog or website owner to easily and quickly create forms for display on their sites. We designed the FormBuilder plugin to fill a need on our own website. We were running WordPress blogs but had no really good way to have our visitors communicate effectively with us. The FormBuilder plugin does exactly that, allowing our visitors to interact with us easily and quickly.</p></blockquote>
<p>WarkenSoft has actually been running the plugin on our site for a while now, helping to bug test and preparing for the public release of the plugin.  While still considered to be BETA software, the plugin already runs QUITE well and has a lot of really great features.</p>
<p>Features:</p>
<ul>
<li>Very easy to install and use.</li>
<li>Highly customizable form functions.</li>
<li>Unlimited form fields.</li>
<li>Accepts creation of most form field types.</li>
<li>Fully CSS compatible.</li>
<li>Powerful built-in spam-blocking technology.</li>
<li>LOTS more cool stuff!</li>
</ul>
<p>Don&#8217;t just take our word for it though, <a href="http://truthmedia.com/wordpress/formbuilder/">go check it out</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2007/05/new-formbuilder-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where to Start with a Website</title>
		<link>http://www.warkensoft.com/2007/03/where-to-start-with-a-website/</link>
		<comments>http://www.warkensoft.com/2007/03/where-to-start-with-a-website/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 18:08:00 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/2007/03/where-to-start-with-a-website/</guid>
		<description><![CDATA[I&#8217;ve come to realize that there are a lot of people visiting this site who know very little about the whole process of setting up a good website. I&#8217;m sure there are many who are intimidated by the process, as well as those who simply haven&#8217;t due to the apparent exorbitant prices of doing so. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come to realize that there are a lot of people visiting this site who know very little about the whole process of setting up a good website.  I&#8217;m sure there are many who are intimidated by the process, as well as those who simply haven&#8217;t due to the apparent exorbitant prices of doing so.</p>
<p>I want you to know that setting up and maintaining a website does not have to be either difficult or excessively expensive.  In fact, you can do it for under $11 / month.  The only thing that might be confusing to some is simply terminology and I&#8217;ll do my best in this lesson to explain what things are as well as how they work.</p>
<p>When it comes right down to it, there are three simple aspects to creating a website.</p>
<p><strong>1. You need something called &#8220;HOSTING&#8221;.</strong><br />
HOSTING is simply the word that we use to refer to where your website is stored.  We will use the analogy of a house.  In this analogy, your HOSTING provider is sort of like your house.  You can put things INTO your house&#8230; and people can come TO your house to see the things that you have on display.  </p>
<p>When you get HOSTING, you receive something like an address.  Just as with a real house, this address indicates to other people where they can find your website.  Now, unfortunately, this address can be complicated at times.  Usually, it is in the form of a number something like 192.168.125.57.  Sometimes, you may not have a specific number at all, so using this address can be fairly complicated for people.  That&#8217;s why we get the next item on the list called a &#8220;DOMAIN&#8221;.</p>
<p>This website, for example, is hosted at <a href="http://phpads.warkensoft.com/adclick.php?bannerid=7&#038;zoneid=9&#038;source=&#038;dest=http://www.warkensoft.com/2006/10/hosting-coupons/&#038;ismap=">DreamHost</a>.  They&#8217;re a company down in California which specializes in HOSTING and they&#8217;re both good and inexpensive.  In fact, we very highly recommend them.  For under $10 / month, they provide everything that we need to run this website, and they make it VERY easy to use.  Check out <a href="http://phpads.warkensoft.com/adclick.php?bannerid=7&#038;zoneid=9&#038;source=&#038;dest=http://www.warkensoft.com/2006/10/hosting-coupons/&#038;ismap=">DreamHost</a> if you&#8217;re looking for somewhere good to host your websites.</p>
<p><a href="http://phpads.warkensoft.com/adclick.php?bannerid=7&#038;zoneid=9&#038;source=&#038;dest=http://www.warkensoft.com/2006/10/hosting-coupons/&#038;ismap=">We also have HOSTING COUPONS for $50 OFF.  Click for more info.</a><br />
<span id="more-45"></span></p>
<p><strong>2. You need what is called a &#8220;DOMAIN&#8221;.</strong><br />
Now a DOMAIN can be compared to a nickname or shorter name for the actual address of your website.  If you are still thinking of your website as a house with an address, the DOMAIN would be something similar to a shortcut to that address.  When you tell your friends to come over to your house, you don&#8217;t usually say &#8220;Come to my place at 12345 BOX 432 on This or That Street in MyCity of MyCountry with MyPostalCode&#8221;.  That would probably confuse more people than it would help.  Rather you say &#8220;Come to James&#8217; place&#8221;.  In the same way, a DOMAIN is a shortcut to your website.</p>
<p>Now, typically domains can cost anywhere between $5 and $100 / year, but most average domains cost about $10 / year.  If you&#8217;ve chosen to host with <a href="http://phpads.warkensoft.com/adclick.php?bannerid=7&#038;zoneid=9&#038;source=&#038;dest=http://www.warkensoft.com/2006/10/hosting-coupons/&#038;ismap=">DreamHost</a> as we recommended above, they provide one domain for FREE so you don&#8217;t even have to worry about how or where to get one.  You can also buy additional domains from them for about $10 / year.</p>
<p><strong>3. You need &#8220;CONTENT&#8221;.</strong><br />
In the house analogy, this would be the same as having stuff in your house that people can look at, or interact with.  Now, the type of content you want to have in your website will make a difference when choosing how to arrange that content.  The content in your site can be as simple as a single page which never changes and just tells a little about who you are, or as complex as a fully automated online store.</p>
<p>This is where the process can get somewhat expensive, but only if you let it.  So far, we&#8217;ve spent a sum total of approximately $11 / month, which isn&#8217;t bad for owning a house&#8230; er&#8230; website.  Things can get pricey though when you start to design complicated sites.  For example, if you did extensive bead-work, and wanted to sell your products online, with a fully automated store, you would probably need to pay someone to set up the store for you in a way that would be easy to update with new products as you get them.</p>
<p>On the other hand, most people looking to start out with a website, simply want a place to put their thoughts (like a blog) or somewhere to experiment with various Internet technologies.  In this case, you shouldn&#8217;t really need to pay anything more than the $11 that we already have.</p>
<p>Say, for example, that you simply want a blog.  Somewhere to put family news, or develop a community around something that you enjoy doing.  <a href="http://phpads.warkensoft.com/adclick.php?bannerid=7&#038;zoneid=9&#038;source=&#038;dest=http://www.warkensoft.com/2006/10/hosting-coupons/&#038;ismap=">DreamHost</a> offers blogging software that can be installed and fully operational on your site with as little as 2 or 3 clicks of the mouse.  They use a blogging software product called &#8220;WordPress&#8221; which is free to use, and allows you to keep your blog up-to-date without ever having to touch any code or programming behind the scenes.  Just click what you want, and they do all the work of setting it up.</p>
<p><strong>And SUDDENLY&#8230;</strong> we have a fully functional website, which your friends can visit and your family can keep in touch.  Pretty cool eh?  And all for less than $11 / month.</p>
<p>If you have more questions about it, or would like to talk to me further about the whole process, I&#8217;d love to hear from you.  Feel free to leave your comments in the comments area below.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2007/03/where-to-start-with-a-website/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>About the Owner of WarkenSoft Productions</title>
		<link>http://www.warkensoft.com/2007/03/who-i-am-about-the-owner-of-warkensoft-productions/</link>
		<comments>http://www.warkensoft.com/2007/03/who-i-am-about-the-owner-of-warkensoft-productions/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 18:30:27 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/2007/03/who-i-am-about-the-owner-of-warkensoft-productions/</guid>
		<description><![CDATA[As owner and author of this blog, I would like to take a little time to introduce myself and give some background on what it is that I do. My name is James Warkentin and I work as a full time PHP programmer at a non-profit ministry in Canada called TruthMedia. TruthMedia is part of [...]]]></description>
			<content:encoded><![CDATA[<p>As owner and author of this blog, I would like to take a little time to introduce myself and give some background on what it is that I do.  My name is James Warkentin and I work as a full time PHP programmer at a non-profit ministry in Canada called <a href="http://www.truthmedia.com" target="_blank">TruthMedia.</a>  TruthMedia is part of a larger non-profit organization called Campus Crusade for Christ.</p>
<p><a href="http://www.crusade.org" target="_blank">Campus Crusade for Christ</a> is a Christian organization which works to bring hope to hurting people around the world.  We do this in a number of ways, including sharing the good news that Jesus Christ has saved each one of us from our sins.  Campus Crusade also works with a number of other agencies including the &#8220;Global Aid Network&#8221;, providing relief supplies to countries dealing with local crises, and assisting with projects that promote sustainable development.</p>
<p>As one of the main developers of Campus Crusade&#8217;s Internet presence, TruthMedia seeks to bring the same message of hope to hurting people on the Internet.  </p>
<blockquote><p>We build online communities where the message of Jesus&#8217; salvation is shared, and spiritual growth takes place. Activities include evangelistic websites, spiritual chat rooms, training online mentors, and support for other groups wanting to develop their own Internet ministry. (www.crusade.org)</p></blockquote>
<p>Because of the fact that TruthMedia is non-profit, I am required to raise all the costs associated with my employment there as <strong>tax deductible donations</strong> from people who want to support the work that we do.  These costs include things like my salary, medical benefits and any other costs associated with being an employee.</p>
<p>In light of that, part of my job involves going to people and asking them to consider helping to support me in this ministry.  I would like to do that here.  If <strong>you</strong> would be willing to consider helping me financially in this ministry, I would LOVE to talk to you more about it.  Feel free to email me through the <a href="/contact/">contact form on this site</a> with your thoughts or questions.  OR, if you would like to donate directly to my ministry, feel free to do so using one of the following links:</p>
<ul>
<li><a href="https://secure.crusade.org/giving/give_staff.php?Staff=Warkentin,%20James%20%2898028%29">Canadian Donation</a> &#8211; Will receive a Canadian tax receipt</li>
<li><a href="https://give.ccci.org/give?Action=ProcessPage&#038;Page=VirtualCommonLinks&#038;Listener=newGift&#038;Desig=2804014">USA Donation</a> &#8211; Will receive a US tax receipt</li>
</ul>
<p>Please choose the donation link which pertains to your location.  Doing this will allow you to receive a tax deductible receipt for the appropriate country.</p>
<p>Thank you so much for your consideration of me in this ministry.<br />
Have a great day,</p>
<p>James Warkentin</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2007/03/who-i-am-about-the-owner-of-warkensoft-productions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Site Downtime</title>
		<link>http://www.warkensoft.com/2007/02/site-downtime/</link>
		<comments>http://www.warkensoft.com/2007/02/site-downtime/#comments</comments>
		<pubDate>Sun, 25 Feb 2007 17:09:34 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Information]]></category>

		<guid isPermaLink="false">http://www.warkensoft.com/2007/02/site-downtime/</guid>
		<description><![CDATA[You may have noticed that over the last few hours this site has been up and down. This has been due to problems with our web host and a planned outage which took some wrong turns, ending up longer than expected. If you can read this, you&#8217;re one of the lucky ones who got through. [...]]]></description>
			<content:encoded><![CDATA[<p>You may have noticed that over the last few hours this site has been up and down.  This has been due to problems with our web host and a planned outage which took some wrong turns, ending up longer than expected.  If you can read this, you&#8217;re one of the lucky ones who got through.</p>
<p>Have a good one,<br />
the Blog Admin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.warkensoft.com/2007/02/site-downtime/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

