<?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>Codelab Blog &#187; Open Source</title>
	<atom:link href="http://blog.codelab.co.nz/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.codelab.co.nz</link>
	<description>Technical Articles and News from Codelab Ltd</description>
	<lastBuildDate>Tue, 17 Jan 2012 13:10:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Setting the screen position when visiting previous page with jQuery</title>
		<link>http://blog.codelab.co.nz/2012/01/18/setting-the-screen-position-when-visiting-previous-page-with-jquery/</link>
		<comments>http://blog.codelab.co.nz/2012/01/18/setting-the-screen-position-when-visiting-previous-page-with-jquery/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 13:10:43 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=373</guid>
		<description><![CDATA[The scenario This problem came while I was working on a client’s website. Take this scenario. I have a listing page (similar to a listing page from www.trademe.co.nz or www.ascent.co.nz ). They have a lot of listings. Each listing has a hyperlink going to a detail page which describes more about each listing. If you [...]]]></description>
			<content:encoded><![CDATA[<p>The scenario</p>
<p>This problem came while I was working on a client’s website. Take this scenario. I have a listing page (similar to a listing page from <a title="TradeMe" href="http://www.trademe.co.nz" target="_blank">www.trademe.co.nz</a> or <a title="Ascent Technologies" href="http://www.ascent.co.nz " target="_blank">www.ascent.co.nz </a>). They have a lot of listings. Each listing has a hyperlink going to a detail page which describes more about each listing.<br />
If you have quite a large page of listings, the user has to scroll down the page to find the listing they want to click on. The problem is, when they click on the link and go to the details page, what happens when the click back and they end up back at the top of the page again? This can be quite annoying. It would be “nice” to get the browser to go back to the previous position on the listing page.</p>
<p>The Approach</p>
<p>We achieve this but attach a click event handler to the specific a tags that we want to record the last clicked position from the user before we redirect to the next page. This means when the user goes back to the previous page they will be taken to the exact position on the page. When the click event happens we always override what was in the cookie so that we don’t end up with several pages and positions. We don’t want a user to go to another page they have been to before and set the scroll position, it should only happen to the previous page.</p>
<p>Here is the code</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">var COOKIE_NAME = &quot;scroll&quot;;<br />
&nbsp;<br />
$(document).ready(function () {<br />
&nbsp; &nbsp; // Check to see if the user already has the cookie set to scroll<br />
&nbsp; &nbsp; var scrollPosition = getCookiePosition(COOKIE_NAME);<br />
&nbsp; &nbsp; if (scrollPosition.length &gt; 0) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; // Scroll to the position of the last link clicked<br />
&nbsp; &nbsp; &nbsp; &nbsp; window.scrollTo(0, parseInt(scrollPosition, 10));<br />
&nbsp; &nbsp; }<br />
&nbsp;<br />
&nbsp; &nbsp; // Attach an overriding click event for each link <br />
&nbsp; &nbsp; // saveScrollPosition function can be called before the user is redirected.<br />
&nbsp; &nbsp; $(&quot;a.savel&quot;).each(function () {<br />
&nbsp; &nbsp; &nbsp; &nbsp; $(this).click(function () {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; saveScrollPosition($(this));<br />
&nbsp; &nbsp; &nbsp; &nbsp; });<br />
&nbsp; &nbsp; });<br />
});<br />
&nbsp;<br />
// Get the offset (height from top of page and the current page url) of the link element<br />
// and save it in a cookie.<br />
function saveScrollPosition(link) {<br />
&nbsp; &nbsp; var linkTop = link.offset().top;<br />
&nbsp; &nbsp; setCookie(COOKIE_NAME, &quot;pos=&quot; + linkTop + &quot;&amp;link=&quot; + escape(window.location.pathname), 1);<br />
}<br />
&nbsp;<br />
//Trim whitespaces<br />
function trim(str) {<br />
&nbsp; &nbsp;return str.replace(/^\s+|\s+$/g, '');<br />
} <br />
// Get cookie helper function<br />
function getCookiePosition(name) {<br />
&nbsp; &nbsp; if (document.cookie.length &gt; 0) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; //Get the right cookie<br />
&nbsp; &nbsp; &nbsp; &nbsp; var cookies = document.cookie.split(&quot;;&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; for (var i = 0; i &lt; cookies.length; i++) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (trim(cookies[i].split(&quot;=&quot;)[0]) == COOKIE_NAME) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Get the position of the &amp; sign<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var pos = cookies[i].indexOf(&quot;&amp;&quot;);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (pos &gt; -1) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Get value<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var scrollValue = cookies[i].split(&quot;=&quot;)[2].substring(0, cookies[i].split(&quot;=&quot;)[2].indexOf(&quot;&amp;&quot;));<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var link = unescape(trim(cookies[i].split(&quot;=&quot;)[3]));<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //if the link is the same as the current page, then assume user wants to go back to the same position<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (link == window.location.pathname) return scrollValue;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &quot;&quot;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; return &quot;&quot;;<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; return &quot;&quot;;<br />
}<br />
&nbsp;<br />
//Method to create a new cookie<br />
function createCookie(name, value, days) {<br />
&nbsp; &nbsp; if (days) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; var date = new Date();<br />
&nbsp; &nbsp; &nbsp; &nbsp; date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));<br />
&nbsp; &nbsp; &nbsp; &nbsp; var expires = &quot;; expires=&quot; + date.toGMTString();<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; else var expires = &quot;&quot;;<br />
&nbsp; &nbsp; document.cookie = name + &quot;=&quot; + value + expires + &quot;; path=/&quot;;<br />
}<br />
&nbsp;<br />
// Set cookie<br />
function setCookie(name, value, expiredays) {<br />
&nbsp; &nbsp; //Remove all other cookies<br />
&nbsp; &nbsp; var cookies = document.cookie.split(&quot;;&quot;);<br />
&nbsp; &nbsp; for (var i = 0; i &lt; cookies.length; i++) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (trim(cookies[i].split(&quot;=&quot;)[0]) == COOKIE_NAME) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; createCookie(trim(cookies[i].split(&quot;=&quot;)[0]), &quot;&quot;, -1);<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; }<br />
&nbsp; &nbsp; //Set the new cookie<br />
&nbsp; &nbsp; createCookie(name, value, expiredays);<br />
}</div></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2012/01/18/setting-the-screen-position-when-visiting-previous-page-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Call to undefined method Mage_Admin_Model_Observer::actionPostDispatchAdmin()</title>
		<link>http://blog.codelab.co.nz/2010/03/20/call-to-undefined-method-mage_admin_model_observeractionpostdispatchadmin/</link>
		<comments>http://blog.codelab.co.nz/2010/03/20/call-to-undefined-method-mage_admin_model_observeractionpostdispatchadmin/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 11:07:21 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=204</guid>
		<description><![CDATA[I upgraded Magento to 1.4.0.0 to 1.4.0.1 and got the following error: Call to undefined method Mage_Admin_Model_Observer::actionPostDispatchAdmin() Everything inside /var/sessions/ and /var/cache and (if it exists) /app/code/core/Zend/Cache/ must be deleted.]]></description>
			<content:encoded><![CDATA[<p>I upgraded Magento to 1.4.0.0 to 1.4.0.1 and got the following error:</p>
<p>Call to undefined method Mage_Admin_Model_Observer::actionPostDispatchAdmin()</p>
<p>Everything inside /var/sessions/ and /var/cache and (if it exists) /app/code/core/Zend/Cache/ must be deleted.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2010/03/20/call-to-undefined-method-mage_admin_model_observeractionpostdispatchadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>toolbar.phtml -&gt; Magento 1.4 error</title>
		<link>http://blog.codelab.co.nz/2010/02/21/toolbar-phtml-magento-1-4-error/</link>
		<comments>http://blog.codelab.co.nz/2010/02/21/toolbar-phtml-magento-1-4-error/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 09:36:57 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=191</guid>
		<description><![CDATA[Came across this error in toolbar.phtml for Magento 1.4: Warning: Invalid argument suppplied for foreach() line 51. Fix is available from here (this is only a fix, it doesn&#8217;t solve the problem &#8211; The paging is removed). References: http://www.sonassi.com/knowledge-base/magento-1-4-install-errors/]]></description>
			<content:encoded><![CDATA[<p>Came across this error in toolbar.phtml for Magento 1.4:</p>
<p>Warning: Invalid argument suppplied for foreach() line 51.</p>
<p>Fix is available from <a href="http://www.sonassi.com/knowledge-base/magento-1-4-install-errors/">here </a>(this is only a fix, it doesn&#8217;t solve the problem &#8211; The paging is removed).</p>
<p><em><strong>References:</strong></em></p>
<p><a href="http://www.sonassi.com/knowledge-base/magento-1-4-install-errors/">http://www.sonassi.com/knowledge-base/magento-1-4-install-errors/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2010/02/21/toolbar-phtml-magento-1-4-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling Sales Order Notification in Magento</title>
		<link>http://blog.codelab.co.nz/2010/02/08/enabling-sales-order-notification-in-magento/</link>
		<comments>http://blog.codelab.co.nz/2010/02/08/enabling-sales-order-notification-in-magento/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 20:17:53 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=185</guid>
		<description><![CDATA[Very helpful post there that enables sales order notifications to the shop admin email address.  Dont&#8217;s use the Bcc option System Configuration -&#62; Sales menu, you have to send a copy of the email to another email address. References: http://nik.chankov.net/2009/10/28/adding-notification-when-new-order-arrives-magento/]]></description>
			<content:encoded><![CDATA[<p>Very helpful post there that enables sales order notifications to the shop admin email address.  Dont&#8217;s use the Bcc option System Configuration -&gt; Sales menu, you have to send a copy of the email to another email address.</p>
<p><em><strong>References:</strong></em></p>
<p><a href="http://nik.chankov.net/2009/10/28/adding-notification-when-new-order-arrives-magento/">http://nik.chankov.net/2009/10/28/adding-notification-when-new-order-arrives-magento/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2010/02/08/enabling-sales-order-notification-in-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bluehost wont allow gmail SMTP connections</title>
		<link>http://blog.codelab.co.nz/2010/01/12/bluehost-wont-allow-gmail-smtp-connections/</link>
		<comments>http://blog.codelab.co.nz/2010/01/12/bluehost-wont-allow-gmail-smtp-connections/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 11:24:44 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Magento]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=166</guid>
		<description><![CDATA[According to bluehost, you cannot send emails through SMTP connections from web applications hosted on bluehost.   They only allow sending through their own SMTP servers. The problem I had was trying to send emails in Magento using GMAIL (Google Apps) using the code from this forum: http://www.magentocommerce.com/boards/viewthread/1073/ The work around is that I setup a [...]]]></description>
			<content:encoded><![CDATA[<p>According to bluehost, you cannot send emails through SMTP connections from web applications hosted on bluehost.   They only allow sending through their own SMTP servers.</p>
<p>The problem I had was trying to send emails in Magento using GMAIL (Google Apps) using the code from this forum:</p>
<p><a href="http://www.magentocommerce.com/boards/viewthread/1073/">http://www.magentocommerce.com/boards/viewthread/1073/</a></p>
<p>The work around is that I setup a email account in Bluehost the same as the email I use in Google Apps.  I then modified the code in Magento to send out using bluehost&#8217;s SMTP servers:</p>
<p>For example:</p>
<p><strong>Outgoing Mail Server: </strong> (SSL) boxnumber.bluehost.com<em> (server requires authentication)</em><br />
<strong>Supported Incoming Mail Protocols:</strong></p>
<ul>
<li>POP3: port 110</li>
<li>POP3S (SSL/TLS): port 995</li>
<li>IMAP: port 143</li>
<li>IMAPS (SSL/TLS): port 993</li>
</ul>
<p><strong>Supported Outgoing Mail Protocols:</strong></p>
<ul>
<li>SMTP: port 26</li>
<li>SMTPS (SSL/TLS): port 465</li>
</ul>
<p>And it works, it sends the email out to the customers with the right email address sent from bluehost&#8217;s local SMTP servers, so when customers reply to the email address it will arrive in my google apps mail box.</p>
<p><em><strong>References:</strong></em></p>
<p><a href="http://drupal.org/node/458044">http://drupal.org/node/458044</a></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var gaJsHost = ((&#8220;https:&#8221; == document.location.protocol) ? &#8220;https://ssl.&#8221; : &#8220;http://www.&#8221;);<br />
document.write(unescape(&#8220;%3Cscript src=&#8217;&#8221; + gaJsHost + &#8220;google-analytics.com/ga.js&#8217; type=&#8217;text/javascript&#8217;%3E%3C/script%3E&#8221;));<br />
&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
try {<br />
var pageTracker = _gat._getTracker(&#8220;UA-4995672-4&#8243;);<br />
pageTracker._trackPageview();<br />
} catch(err) {}&lt;/script&gt;</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2010/01/12/bluehost-wont-allow-gmail-smtp-connections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JFactory::getDate() doesn&#8217;t automatically add offset</title>
		<link>http://blog.codelab.co.nz/2009/12/07/jfactorygetdate-doesnt-automatically-add-offset/</link>
		<comments>http://blog.codelab.co.nz/2009/12/07/jfactorygetdate-doesnt-automatically-add-offset/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 09:43:50 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=156</guid>
		<description><![CDATA[By default, calling JFactory::getDate() doesn&#8217;t automatically apply the timezone offset.   The default date/time is GMT. By using the following code, you can set the offset from the global joomla configuration file &#60;?php $thisJApp = &#38;JFactory::getApplication(); $thisJDate = JFactory::getDate(); $thisJDate -&#62;setOffset($thisJApp -&#62;getCfg(&#8216;offset&#8217;)); echo $thisJDate-&#62;toFormat(&#8220;%A %d %b %Y&#8221;); ?&#62; If you want to set the date from [...]]]></description>
			<content:encoded><![CDATA[<p>By default, calling JFactory::getDate() doesn&#8217;t automatically apply the timezone offset.   The default date/time is GMT.</p>
<p>By using the following code, you can set the offset from the global joomla configuration file</p>
<p>&lt;?php<br />
$thisJApp = &amp;JFactory::getApplication();<br />
$thisJDate = JFactory::getDate();<br />
$thisJDate -&gt;setOffset($thisJApp -&gt;getCfg(&#8216;offset&#8217;));<br />
echo $thisJDate-&gt;toFormat(&#8220;%A %d %b %Y&#8221;);<br />
?&gt;</p>
<p>If you want to set the date from a logged in user you can try:</p>
<p>&lt;%</p>
<p>$JUser =&amp; JFactory::getUser();<br />
$JDate = JFactory::getDate();<br />
echo $JDate-&gt;toFormat().&#8217;&lt;br&gt;&#8217;;<br />
echo &#8216;offset=&#8217; . $JDate-&gt;getOffset() . &#8216;&lt;br&gt;&#8217;;<br />
$JDate-&gt;setOffset($JUser-&gt;getParam(&#8216;timezone&#8217;));</p>
<p>%&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2009/12/07/jfactorygetdate-doesnt-automatically-add-offset/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blocking IP Addresses on Linux Server</title>
		<link>http://blog.codelab.co.nz/2009/11/04/blocking-ip-addresses-on-linux-server/</link>
		<comments>http://blog.codelab.co.nz/2009/11/04/blocking-ip-addresses-on-linux-server/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 07:57:17 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=144</guid>
		<description><![CDATA[Had some suspect IP addresses trying to attempt to login via the admin user in Moodle. Best thing to do is block the IP address to the server or even better the IP range (after doing a IP lookup to see where the IP address came from). References: http://www.cyberciti.biz/faq/how-do-i-block-an-ip-on-my-linux-server/]]></description>
			<content:encoded><![CDATA[<p>Had some suspect IP addresses trying to attempt to login via the admin user in Moodle.   Best thing to do is block the IP address to the server or even better the IP range (after doing a IP lookup to see where the IP address came from).</p>
<p><strong><em>References: </em></strong></p>
<p><a href="http://www.cyberciti.biz/faq/how-do-i-block-an-ip-on-my-linux-server/">http://www.cyberciti.biz/faq/how-do-i-block-an-ip-on-my-linux-server/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2009/11/04/blocking-ip-addresses-on-linux-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SimplePie Joomla Proxy Issue</title>
		<link>http://blog.codelab.co.nz/2009/06/19/simplepie-joomla-proxy-issue/</link>
		<comments>http://blog.codelab.co.nz/2009/06/19/simplepie-joomla-proxy-issue/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 00:43:50 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=133</guid>
		<description><![CDATA[The issue I had with a particular joomla site is that I could not load external RSS feeds.   The error was &#8220;Could not connect to {server}&#8221;.   RSS Feed load failed.   This was caused in the SimplePie.php class around line 6601. Steps to resolve: I enabled the cUrl extension in php.ini (running on a IIS platform) [...]]]></description>
			<content:encoded><![CDATA[<p>The issue I had with a particular joomla site is that I could not load external RSS feeds.   The error was &#8220;Could not connect to {server}&#8221;.   RSS Feed load failed.   This was caused in the SimplePie.php class around line 6601.</p>
<p>Steps to resolve:</p>
<p>I enabled the cUrl extension in php.ini (running on a IIS platform)</p>
<p>Changed the code around line 6536:</p>
<p>curl_setopt($fp, CURLOPT_PROXY, $ip);<br />
curl_setopt($fp, CURLOPT_PROXYPORT, $port);<br />
curl_setopt($fp, CURLOPT_PROXYUSERPWD, $login . &#8216;:&#8217; . $passwd);</p>
<p>where $ip is the proxy IP Address, $port is the port and $login:$password is the proxy authentication.</p>
<p>After this, I can load in external RSS feeds! YAY</p>
<p><em><strong>References:</strong></em></p>
<p><a href="http://www.phpdig.net/ref/rn11re189.html">http://www.phpdig.net/ref/rn11re189.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2009/06/19/simplepie-joomla-proxy-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>broken ubuntu gutsy sources.list</title>
		<link>http://blog.codelab.co.nz/2009/05/19/broken-ubuntu-gutsy-sourceslist/</link>
		<comments>http://blog.codelab.co.nz/2009/05/19/broken-ubuntu-gutsy-sourceslist/#comments</comments>
		<pubDate>Tue, 19 May 2009 08:43:31 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=128</guid>
		<description><![CDATA[Attempting to update my repository on our Ubuntu VPS running the gutsy 7.10 version&#8230;I noticed that I was getting 404 ERRORs caused by the distribution being moved from its normal place within the mirrors. deb http://old-releases.ubuntu.com/ubuntu gutsy main restricted universe multiverse replace all the URL&#8217;s with http://old-releases.ubuntu.com you should now be able to update your [...]]]></description>
			<content:encoded><![CDATA[<p>Attempting to update my repository on our Ubuntu VPS running the gutsy 7.10 version&#8230;I noticed that I was getting 404 ERRORs caused by the distribution being moved from its normal place within the mirrors.</p>
<blockquote><p>deb http://old-releases.ubuntu.com/ubuntu gutsy main restricted universe multiverse</p></blockquote>
<p>replace all the URL&#8217;s with http://old-releases.ubuntu.com</p>
<p>you should now be able to update your packages etc from this URL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2009/05/19/broken-ubuntu-gutsy-sourceslist/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A CMS that integrates into ASP.NET MVC</title>
		<link>http://blog.codelab.co.nz/2009/04/13/a-cms-that-integrates-into-aspnet-mvc/</link>
		<comments>http://blog.codelab.co.nz/2009/04/13/a-cms-that-integrates-into-aspnet-mvc/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 09:23:32 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>

		<guid isPermaLink="false">http://blog.codelab.co.nz/?p=114</guid>
		<description><![CDATA[Here is a open source CMS called N2 that provides a CMS framework to build web applications on using the ASP.NET MVC Model.   Its a very basic CMS, but it provides all the core functionality including Pages, Articles and a .NET Permissions Model (it also has some add ons and allows developers to contribute their [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a open source CMS called N2 that provides a CMS framework to build web applications on using the ASP.NET MVC Model.   Its a very basic CMS, but it provides all the core functionality including Pages, Articles and a .NET Permissions Model (it also has some add ons and allows developers to contribute their own add ons).   They have lots of documentation and useful examples on how to work the CMS with MVC.   Very cool stuff!</p>
<p><strong><em>References:</em></strong></p>
<p><a href="http://n2cms.com">http://n2cms.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.codelab.co.nz/2009/04/13/a-cms-that-integrates-into-aspnet-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

