<?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>Brewsterware</title>
	<atom:link href="http://www.brewsterware.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.brewsterware.com</link>
	<description></description>
	<lastBuildDate>Sun, 22 Aug 2010 18:36:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>strptime for windows</title>
		<link>http://www.brewsterware.com/strptime-for-windows.html</link>
		<comments>http://www.brewsterware.com/strptime-for-windows.html#comments</comments>
		<pubDate>Sun, 22 Aug 2010 18:36:42 +0000</pubDate>
		<dc:creator>Joe Brewer</dc:creator>
				<category><![CDATA[PHP and MySQL]]></category>

		<guid isPermaLink="false">http://www.brewsterware.com/?p=245</guid>
		<description><![CDATA[I was searching for a windows implementation for the php function strptime, however the best help/advice that I could find was read the source code and write it yourself. Here is my implentation that I knocked up with date_parse_from_format so you can use it on version of php less than 5.3.0 if (!function_exists('date_parse_from_format')) { function [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I was searching for a windows implementation for the php function strptime, however the best help/advice that I could find was read the source code and write it yourself.  Here is my implentation that I knocked up with date_parse_from_format so you can use it on version of php less than 5.3.0</p>
<pre class="brush: php;">if (!function_exists('date_parse_from_format')) {
	function date_parse_from_format($format, $date) {
		$returnArray = array('hour' =&gt; 0, 'minute' =&gt; 0, 'second' =&gt; 0,
							'month' =&gt; 0, 'day' =&gt; 0, 'year' =&gt; 0);

		$dateArray = array();

		// array of valid date codes with keys for the return array as the values
		$validDateTimeCode = array('Y' =&gt; 'year', 'y' =&gt; 'year',
									'm' =&gt; 'month', 'n' =&gt; 'month',
									'd' =&gt; 'day', 'j' =&gt; 'day',
									'H' =&gt; 'hour', 'G' =&gt; 'hour',
									'i' =&gt; 'minute', 's' =&gt; 'second');

		/* create an array of valid keys for the return array
		 * in the order that they appear in $format
		 */
		for ($i = 0 ; $i &lt;= strlen($format) - 1 ; $i++) {
			$char = substr($format, $i, 1);

			if (array_key_exists($char, $validDateTimeCode)) {
				$dateArray[$validDateTimeCode[$char]] = '';
			}
		}

		// create array of reg ex things for each date part
		$regExArray = array('.' =&gt; '\.', // escape the period

							// parse d first so we dont mangle the reg ex
							// day
							'd' =&gt; '(\d{2})',

							// year
							'Y' =&gt; '(\d{4})',
							'y' =&gt; '(\d{2})',

							// month
							'm' =&gt; '(\d{2})',
							'n' =&gt; '(\d{1,2})',

							// day
							'j' =&gt; '(\d{1,2})',

							// hour
							'H' =&gt; '(\d{2})',
							'G' =&gt; '(\d{1,2})',

							// minutes
							'i' =&gt; '(\d{2})',

							// seconds
							's' =&gt; '(\d{2})');

		// create a full reg ex string to parse the date with
		$regEx = str_replace(array_keys($regExArray),
								array_values($regExArray),
								$format);

		// Parse the date
		preg_match(&quot;#$regEx#&quot;, $date, $matches);

		// some checks...
		if (!is_array($matches) ||
			$matches[0] != $date ||
			sizeof($dateArray) != (sizeof($matches) - 1)) {
			return $returnArray;
		}

		// an iterator for the $matches array
		$i = 1;

		foreach ($dateArray AS $key =&gt; $value) {
			$dateArray[$key] = $matches[$i++];

			if (array_key_exists($key, $returnArray)) {
				$returnArray[$key] = $dateArray[$key];
			}
		}

		return $returnArray;
	}
}

if (!function_exists('strptime')) {
	function strptime($format, $date) {
		$dateArray = array();

		$dateArray = date_parse_from_format($format, $date);

		if (is_array($dateArray)) {
			return mktime($dateArray['hour'],
							$dateArray['minute'],
							$dateArray['second'],
							$dateArray['month'],
							$dateArray['day'],
							$dateArray['year']);
		} else {
			return 0;
		}
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brewsterware.com/strptime-for-windows.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updates for Caffinated Content</title>
		<link>http://www.brewsterware.com/updates-for-caffinated-content.html</link>
		<comments>http://www.brewsterware.com/updates-for-caffinated-content.html#comments</comments>
		<pubDate>Thu, 12 Aug 2010 22:40:28 +0000</pubDate>
		<dc:creator>Joe Brewer</dc:creator>
				<category><![CDATA[Caffinated Content]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.brewsterware.com/?p=241</guid>
		<description><![CDATA[For those of you that use Caffinated Content you may be interested to heat that kansieo has decided to sell 19 copies of the source code to Caffinated Content - it was 20, but I've bought one.  Full details can be found here - In a nutshell kansieo is allowing 20 developers to take the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>For those of you that use Caffinated Content you may be interested to heat that kansieo has decided to sell 19 copies of the source code to Caffinated Content - it was 20, but I've bought one.  Full details can be found <a href="http://kansieo.com/2010/08/12/kansieo-com-newsletter-caffeinated-content-the-developers-cut/" target="_blank">here</a> - In a nutshell kansieo is allowing 20 developers to take the source code, improve it, and update it.</p>
<p>What would you like to see in future releases ?  Here's a list of mine:</p>
<ul>
<li>Cron jobs for adding posts - a set number per day.</li>
<li>Cron jobs setup to add posts to different categories from specific sources.</li>
<li>Support for more sites to collect content from - maybe use a plugin architechture to add new sites.</li>
<li>The ability to poll for content to be posted from a specific folder.  A file in xml format could allow for wordpress post fields such as post date, title, content etc could be used appropriately in each post.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.brewsterware.com/updates-for-caffinated-content.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Domain Renewal Group</title>
		<link>http://www.brewsterware.com/domain-renewal-group.html</link>
		<comments>http://www.brewsterware.com/domain-renewal-group.html#comments</comments>
		<pubDate>Sat, 08 May 2010 10:51:00 +0000</pubDate>
		<dc:creator>Joe Brewer</dc:creator>
				<category><![CDATA[Domains]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://www.brewsterware.com/?p=238</guid>
		<description><![CDATA[I keep on getting letters from the domain renewal group asking if I want to transfer domains to them, only for them to change more than twice as much as my current registrar. My latest letter is asking me to transfer one of my .net domains to them for the bargin price of £20 (yes, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I keep on getting letters from the domain renewal group asking if I want to transfer domains to them, only for them to change more than twice as much as my current registrar.  My latest letter is asking me to transfer one of my .net domains to them for the bargin price of £20 (yes, that is twenty pounds stirling) for one year!  My current registrar, which happens to be moniker, charges $8 a year.</p>
<p>Anyone else get these ridiculous letters ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brewsterware.com/domain-renewal-group.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracker progress &#8211; part 1</title>
		<link>http://www.brewsterware.com/tracker-progress-part-1.html</link>
		<comments>http://www.brewsterware.com/tracker-progress-part-1.html#comments</comments>
		<pubDate>Sat, 06 Feb 2010 23:08:06 +0000</pubDate>
		<dc:creator>Joe Brewer</dc:creator>
				<category><![CDATA[Evolution of a new tracker]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP and MySQL]]></category>

		<guid isPermaLink="false">http://www.brewsterware.com/?p=202</guid>
		<description><![CDATA[So now I can create campaigns for offers, landing pages, offer rotations and landing page rotations.  I've only really tested sending traffic directly to offers, but I've only got one real report (and that is still not 100% finished). Here is the report for anyone that is interested.]]></description>
			<content:encoded><![CDATA[<p></p><p>So now I can create campaigns for offers, landing pages, offer rotations and landing page rotations.  I've only really tested sending traffic directly to offers, but I've only got one real report (and that is still not 100% finished).</p>
<p>Here is the report for anyone that is interested.</p>
<p><img class="aligncenter size-medium wp-image-208" title="campaign report" src="http://www.brewsterware.com/images/tracker/campaign-report.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brewsterware.com/tracker-progress-part-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracking cost data</title>
		<link>http://www.brewsterware.com/tracking-cost-data.html</link>
		<comments>http://www.brewsterware.com/tracking-cost-data.html#comments</comments>
		<pubDate>Sun, 17 Jan 2010 22:03:59 +0000</pubDate>
		<dc:creator>Joe Brewer</dc:creator>
				<category><![CDATA[Evolution of a new tracker]]></category>

		<guid isPermaLink="false">http://www.brewsterware.com/?p=193</guid>
		<description><![CDATA[Although the major three search engines have apis for their PPC engines, PPV engines do not.  This brings up the question of how to track the cost of each impression. To get accurate stats I could scrape the reports that are available in each of the engines, and I guess this would be the best [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Although the major three search engines have apis for their PPC engines, PPV engines do not.  This brings up the question of how to track the cost of each impression.</p>
<p>To get accurate stats I could scrape the reports that are available in each of the engines, and I guess this would be the best and most accurate way of doing it.  However to begin with, my tracker can hold average click costs per traffic source per campaign.  As impressions are made the current click cost is looked up from the relevant traffic source and recorded with the click. I'll likely implement some kind of scraping code later on when I have got more of the other essential features implemented.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.brewsterware.com/images/tracker/clickcost.jpg" alt="" /></p>
<p>What I would really really like is if each engine could pass the click cost back to the tracker in the url, and my tracker could handle this easily with a bit of configuration, but it is very unlikely to be implemented.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brewsterware.com/tracking-cost-data.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.358 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-02 17:55:17 -->
