<?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"
	>

<channel>
	<title>A Blue Star</title>
	<atom:link href="http://www.abluestar.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.abluestar.com/blog</link>
	<description>Rantings from Steven smethurst</description>
	<pubDate>Tue, 22 Jul 2008 20:02:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>The procedure entry point_except_handler4_common could not be located in the dynamic link library msvcrt.dll</title>
		<link>http://www.abluestar.com/blog/the-procedure-entry-point_except_handler4_common-could-not-be-located-in-the-dynamic-link-library-msvcrtdll/</link>
		<comments>http://www.abluestar.com/blog/the-procedure-entry-point_except_handler4_common-could-not-be-located-in-the-dynamic-link-library-msvcrtdll/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 19:57:08 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=447</guid>
		<description><![CDATA[The procedure entry point_except_handler4_common could not be located in the dynamic link library msvcrt.dll
This error is caused by a 3rd party utility or applcation overwriting your msvcrt.dll with a different version.
For example if a windows vista version of this DLL was copied on to a windows XP computer you would probably get this error.
A solution [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The procedure entry point_except_handler4_common could not be located in the dynamic link library msvcrt.dll</p></blockquote>
<p>This error is caused by a 3rd party utility or applcation overwriting your msvcrt.dll with a different version.</p>
<p>For example if a windows vista version of this DLL was copied on to a windows XP computer you would probably get this error.</p>
<p>A solution to this problem can be found in Microsofts KB<br />
<a href="http://support.microsoft.com/kb/324762">http://support.microsoft.com/kb/324762</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/the-procedure-entry-point_except_handler4_common-could-not-be-located-in-the-dynamic-link-library-msvcrtdll/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Your daily WTF</title>
		<link>http://www.abluestar.com/blog/your-daily-wtf/</link>
		<comments>http://www.abluestar.com/blog/your-daily-wtf/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 22:26:04 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=446</guid>
		<description><![CDATA[I found this today while doing code review.
it was ment to be a sleep timer&#8230;
I just about shit a brick when I saw this.

for(int i=0; i&#60;PAUSE_LENGTH; i++)
{
i++;
}

]]></description>
			<content:encoded><![CDATA[<p>I found this today while doing code review.</p>
<p>it was ment to be a sleep timer&#8230;<br />
I just about shit a brick when I saw this.</p>
<blockquote>
<pre>for(int i=0; i&lt;PAUSE_LENGTH; i++)
{
i++;
}</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/your-daily-wtf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Insert new post in to wordpress from php</title>
		<link>http://www.abluestar.com/blog/insert-new-post-in-to-wordpress-from-php/</link>
		<comments>http://www.abluestar.com/blog/insert-new-post-in-to-wordpress-from-php/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 06:52:24 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Blogging Tips]]></category>

		<category><![CDATA[Web development]]></category>

		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=444</guid>
		<description><![CDATA[This code snippet should let you add a new post to your wordpress database 2.5.1 
require_once('wp-config.php');
//&#160;create&#160;post&#160;object
class&#160;wm_mypost&#160;{
&#160;&#160;&#160;&#160;var&#160;$post_title;
&#160;&#160;&#160;&#160;var&#160;$post_content;
&#160;&#160;&#160;&#160;var&#160;$post_status;&#160;&#160;&#160;&#160;/*&#160;publish,&#160;private&#160;*/
&#160;&#160;&#160;&#160;var&#160;$post_author;&#160;&#160;&#160;&#160;/*&#160;author&#160;user&#160;id&#160;(optional)&#160;*/
&#160;&#160;&#160;&#160;var&#160;$post_name;&#160;&#160;&#160;&#160;&#160;&#160;/*&#160;slug&#160;(optional)&#160;*/
&#160;&#160;&#160;&#160;var&#160;$post_type;&#160;&#160;&#160;&#160;&#160;&#160;/*&#160;'page'&#160;or&#160;'post'&#160;(optional,&#160;defaults&#160;to&#160;'post')&#160;*/
&#160;&#160;&#160;&#160;var&#160;$comment_status;&#160;/*&#160;open&#160;or&#160;closed&#160;for&#160;commenting&#160;(optional)&#160;*/
&#160;&#160;&#160;&#160;var&#160;$post_category&#160;;&#160;
}
//&#160;initialize&#160;post&#160;object
$wm_mypost&#160;=&#160;new&#160;wm_mypost();
$wm_mypost->post_title&#160;&#160;&#160;&#160;=&#160;&#34;Title2&#160;&#34;.&#160;date(&#160;'r'&#160;);
$wm_mypost->post_content&#160;&#160;=&#160;&#34;content3&#34;;
$wm_mypost->post_status&#160;&#160;&#160;=&#160;'publish';&#160;
$wm_mypost->post_author&#160;&#160;&#160;=&#160;1;
//&#160;Catagorys
$post_category&#160;=&#160;split(&#34;,&#34;&#160;,&#160;&#34;one&#34;);
foreach($post_category&#160;as&#160;$key=>$val)&#160;{
&#160;&#160;&#160;&#160;$post_category[$key]&#160;=&#160;get_cat_ID($val);
}
$wm_mypost->post_category&#160;=&#160;&#160;$post_category&#160;;&#160;
//&#160;Optional;&#160;uncomment&#160;as&#160;needed
//&#160;$wm_mypost->post_type&#160;=&#160;'page';
//&#160;$wm_mypost->comment_status&#160;=&#160;'closed';
//&#160;feed&#160;object&#160;to&#160;wp_insert_post
$post_ID&#160;=&#160;wp_insert_post($wm_mypost);
echo&#160;date(&#160;'r'&#160;)&#160;.&#160;&#34;\n&#34;;
echo&#160;&#34;post_ID:&#34;.&#160;$post_ID&#160;.&#160;&#34;\n&#34;;&#160;
]]></description>
			<content:encoded><![CDATA[<p>This code snippet should let you add a new post to your wordpress database 2.5.1 </p>
<p><code>require_once('wp-config.php');</p>
<p>//&nbsp;create&nbsp;post&nbsp;object<br />
class&nbsp;wm_mypost&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$post_title;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$post_content;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$post_status;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;publish,&nbsp;private&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$post_author;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;author&nbsp;user&nbsp;id&nbsp;(optional)&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$post_name;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;slug&nbsp;(optional)&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$post_type;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;'page'&nbsp;or&nbsp;'post'&nbsp;(optional,&nbsp;defaults&nbsp;to&nbsp;'post')&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$comment_status;&nbsp;/*&nbsp;open&nbsp;or&nbsp;closed&nbsp;for&nbsp;commenting&nbsp;(optional)&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;$post_category&nbsp;;&nbsp;<br />
}</p>
<p>//&nbsp;initialize&nbsp;post&nbsp;object<br />
$wm_mypost&nbsp;=&nbsp;new&nbsp;wm_mypost();<br />
$wm_mypost->post_title&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&quot;Title2&nbsp;&quot;.&nbsp;date(&nbsp;'r'&nbsp;);<br />
$wm_mypost->post_content&nbsp;&nbsp;=&nbsp;&quot;content3&quot;;<br />
$wm_mypost->post_status&nbsp;&nbsp;&nbsp;=&nbsp;'publish';&nbsp;<br />
$wm_mypost->post_author&nbsp;&nbsp;&nbsp;=&nbsp;1;</p>
<p>//&nbsp;Catagorys<br />
$post_category&nbsp;=&nbsp;split(&quot;,&quot;&nbsp;,&nbsp;&quot;one&quot;);<br />
foreach($post_category&nbsp;as&nbsp;$key=>$val)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;$post_category[$key]&nbsp;=&nbsp;get_cat_ID($val);<br />
}<br />
$wm_mypost->post_category&nbsp;=&nbsp;&nbsp;$post_category&nbsp;;&nbsp;</p>
<p>//&nbsp;Optional;&nbsp;uncomment&nbsp;as&nbsp;needed<br />
//&nbsp;$wm_mypost->post_type&nbsp;=&nbsp;'page';<br />
//&nbsp;$wm_mypost->comment_status&nbsp;=&nbsp;'closed';</p>
<p>//&nbsp;feed&nbsp;object&nbsp;to&nbsp;wp_insert_post<br />
$post_ID&nbsp;=&nbsp;wp_insert_post($wm_mypost);<br />
echo&nbsp;date(&nbsp;'r'&nbsp;)&nbsp;.&nbsp;&quot;\n&quot;;<br />
echo&nbsp;&quot;post_ID:&quot;.&nbsp;$post_ID&nbsp;.&nbsp;&quot;\n&quot;;&nbsp;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/insert-new-post-in-to-wordpress-from-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to make a CMinMaxAvg class</title>
		<link>http://www.abluestar.com/blog/how-to-make-a-cminmaxavg-class/</link>
		<comments>http://www.abluestar.com/blog/how-to-make-a-cminmaxavg-class/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 21:21:48 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=442</guid>
		<description><![CDATA[I got asked how to create a simple averaging class.
If you where feeling smart you could enhance this class in to a template class for a object that has the =,+,&#62;,&#60; operator. But I&#8217;m feeling lazy today.
class CMinMaxAvg
{
private :
int	m_count;
int	m_total;
int	m_min;
int	m_max;
public:

CMinMaxAvg() {
m_count = 0 ;
m_total = 0 ;
m_min   = 0 ;
m_max   = 0 [...]]]></description>
			<content:encoded><![CDATA[<p>I got asked how to create a simple averaging class.<br />
If you where feeling smart you could enhance this class in to a template class for a object that has the =,+,&gt;,&lt; operator. But I&#8217;m feeling lazy today.</p>
<pre>class CMinMaxAvg
{
private :
int	m_count;
int	m_total;
int	m_min;
int	m_max;
public:

CMinMaxAvg() {
m_count = 0 ;
m_total = 0 ;
m_min   = 0 ;
m_max   = 0 ;
}

void add( int iNum ) {
if( m_count == 0 ) {
SetMax( iNum, true ) ;
SetMin( iNum, true );
}        SetMax( iNum, false );
SetMin( iNum, false );
m_count ++;
m_total += iNum ;
}

void SetMax( int iNum, bool force=true ) {
if( m_max &lt; iNum || force ) {
m_max = iNum ;
}
}

void SetMin( int iNum, bool force=true ) {
if( m_min &gt; iNum || force) {
m_min = iNum ;
}
}

float GetAvg( ) {
return (float)m_total/(float)m_count ;
}

int GetMax() {
return m_max ;
}

int GetMin() {
return m_min ;
}
};</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/how-to-make-a-cminmaxavg-class/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to install PHPBB 3.0.1</title>
		<link>http://www.abluestar.com/blog/how-to-install-phpbb-301/</link>
		<comments>http://www.abluestar.com/blog/how-to-install-phpbb-301/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 06:36:21 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Blogging Tips]]></category>

		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=431</guid>
		<description><![CDATA[This tutorial will walk you thou the steps to install PHPBB3 on your system.
Intro 
PHPBB3 has become one of the more popular bulletin board system (AKA, BBS, or forums) available. It is used for all types of websites, from corporate websites, online stores, online hobby groups, ect.  One of the main selling points for many [...]]]></description>
			<content:encoded><![CDATA[<p>This tutorial will walk you thou the steps to install <a href="http://www.phpbb.com/">PHPBB3</a> on your system.</p>
<p><strong>Intro </strong></p>
<p><a href="http://www.phpbb.com/">PHPBB3</a> has become one of the more popular <a href="http://en.wikipedia.org/wiki/Comparison_of_Internet_forum_software_(PHP)">bulletin board system</a> (AKA, <a href="http://en.wikipedia.org/wiki/Bulletin_board_system">BBS</a>, or forums) available. It is used for all types of websites, from <a href="http://www.chipkin.com/forums/">corporate websites</a>, online stores, <a href="http://forum.hackedgadgets.com/">online hobby groups</a>, ect.  One of the <a href="http://www.phpbb.com/about/features/">main selling points</a> for many people that use PHPBB is the strong <a href="http://www.phpbb.com/community/">community of developers</a> developing <a href="http://www.phpbb.com/mods/">mods</a> and <a href="http://www.phpbb.com/styles/">themes</a>. PHPBB is an <a href="http://en.wikipedia.org/wiki/Open_source">open source</a> project released under (<a href="http://www.gnu.org/licenses/gpl.html">General Public License</a>) that started in 2000 by <a href="http://en.wikipedia.org/wiki/James_Atkinson_%28software_developer%29">James Atkinson</a> (now a former team member) has come a long way in the last 8 years. As PHPBB grew and became more popular and as its install base reached over 100,000 sites, it started getting targeted by <a href="http://en.wikipedia.org/wiki/Hacker">hackers</a> and <a href="http://en.wikipedia.org/wiki/Script_kiddie">script kiddies</a>. Forums would be filled with <a href="http://en.wikipedia.org/wiki/Spam_in_blogs">spam comments</a>, <a href="http://en.wikipedia.org/wiki/Adult_Web_Movie_Database">links to porn/adult sites</a>, and people trying to sell <a href="http://en.wikipedia.org/wiki/Viagra">perscription medication</a> it turned a lot of people away from PHPBB on to <a href="http://getvanilla.com/">other forum systems</a>. The newer versions of PHPBB2 and PHPBB3 made spam and <a href="http://recaptcha.net/">robot prevention</a> a major concern and the exploits that allow robots and script kiddies to make new posts have been reduced significantly.</p>
<p><strong>Requirements </strong>(<a href="http://www.phpbb.com/support/documentation/3.0/quickstart/quick_requirements.php">^</a>)<strong><br />
</strong></p>
<ul>
<li>A webserver that supports <a href="http://www.php.net/">PHP</a> ( <a href="http://www.apache.org/">apache.org</a>, <a href="http://www.lighttpd.net/">lighttpd.net</a>, ect )</li>
<li>SQL database ( <a href="http://www.mysql.com/">mysql.com</a>, <a href="http://www.sqlite.org">sqlite.org</a> )</li>
<li><a href="http://www.php.net/">PHP 4.3.3</a> or above</li>
</ul>
<p>For this tutorial we will be use a <a href="http://www.apache.org/">apache.org</a> on a UNIX based web server hosted on <a href="http://www.dreamhost.com/r.cgi?78455">dreamhost.com</a> using <a href="http://www.mysql.com/">mysql.com</a> for the database.</p>
<p><strong>Directions</strong></p>
<p>1) Download the <a href="http://www.phpbb.com/downloads/">latest stable version of PHPBB</a> (We are using PHPBB3.0.1)<br />
2) Extract the archive to your desktop, preserving the file tree. (C:\temp\PHPBB3)<br />
3) Upload the contents of the archive to your web server. (/abluestar.com/temp/phpBB3/)<br />
4) Browse to the installation page</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-introduction-mozilla-firefox-3-beta-5.png"><img class="alignnone size-medium wp-image-432" title="screenshot-introduction" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-introduction-mozilla-firefox-3-beta-5-300x170.png" alt="" width="300" height="170" /></a></p>
<p>5) Click the install tab at the top of the page. Then click the “Proceed to next step” button.</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-introduction-mozilla-firefox-3-beta-5-1.png"><img class="alignnone size-medium wp-image-433" title="screenshot-introduction-mozilla-firefox-3-beta-5-1" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-introduction-mozilla-firefox-3-beta-5-1-300x187.png" alt="" width="300" height="187" /></a></p>
<p>6) On this page your system will be checked for the basic requirements.</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-requirements-mozilla-firefox-3-beta-5.png"><img class="alignnone size-medium wp-image-434" title="screenshot-requirements-mozilla-firefox-3-beta-5" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-requirements-mozilla-firefox-3-beta-5-300x187.png" alt="" width="300" height="187" /></a></p>
<p>7) Enter your database settings</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-mysql.png"><img class="alignnone size-medium wp-image-436" title="screenshot-mysql" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-mysql-300x211.png" alt="" width="300" height="211" /></a></p>
<p>8 ) Set up the boards administrative user</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-administrator-details-mozilla-firefox-3-beta-5.png"><img class="alignnone size-medium wp-image-437" title="screenshot-administrator-details-mozilla-firefox-3-beta-5" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-administrator-details-mozilla-firefox-3-beta-5-300x187.png" alt="" width="300" height="187" /></a></p>
<p>9) Set Advanced settings. Most of these settings can be left as there defaults or changed later.</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-advanced-settings-mozilla-firefox-3-beta-5.png"><img class="alignnone size-medium wp-image-438" title="screenshot-advanced-settings-mozilla-firefox-3-beta-5" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-advanced-settings-mozilla-firefox-3-beta-5-300x187.png" alt="" width="300" height="187" /></a></p>
<p>10) Create database tables. This page creates the nessary tables on your database for the forum system to store your settings.</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-create-database-tables-mozilla-firefox-3-beta-5.png"><img class="alignnone size-medium wp-image-439" title="screenshot-create-database-tables-mozilla-firefox-3-beta-5" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-create-database-tables-mozilla-firefox-3-beta-5-300x187.png" alt="" width="300" height="187" /></a></p>
<p>11) Final stage, this is just a conformation page that everything has been installed correctly. You can now browse to the install directory.</p>
<p>12) Main page. At this stage you should delete the /install/ directory from the PHPBB3 folder.</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-yourdomaincom-gco-information-mozilla-firefox-3-beta-5.png"><img class="alignnone size-medium wp-image-440" title="screenshot-yourdomaincom-gco-information-mozilla-firefox-3-beta-5" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-yourdomaincom-gco-information-mozilla-firefox-3-beta-5-300x170.png" alt="" width="300" height="170" /></a></p>
<p>13) At this point you can log in to your forums adminitation panle and configure your forums to suit your needs, but this beyond the scope of this tutorial.</p>
<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-yourdomaincom-gco-user-control-panel-gco-front-page-mozilla-firefox-3-beta-5.png"><img class="alignnone size-medium wp-image-441" title="screenshot-yourdomaincom-gco-user-control-panel-gco-front-page-mozilla-firefox-3-beta-5" src="http://www.abluestar.com/blog/wp-content/uploads/2008/06/screenshot-yourdomaincom-gco-user-control-panel-gco-front-page-mozilla-firefox-3-beta-5-300x187.png" alt="" width="300" height="187" /></a></p>
<p>This tutorial was written for COMP2920, Steven Smethurst, B.J. Wilson, Dennis Warren</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/how-to-install-phpbb-301/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Anti-Counterfeiting Trade Agreement = BAD</title>
		<link>http://www.abluestar.com/blog/anti-counterfeiting-trade-agreement-bad/</link>
		<comments>http://www.abluestar.com/blog/anti-counterfeiting-trade-agreement-bad/#comments</comments>
		<pubDate>Fri, 30 May 2008 22:16:50 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=429</guid>
		<description><![CDATA[Have you heard about the ‘Anti-Counterfeiting Trade Agreement,’
The agreement is being structured much like the North American Free Trade Agreement (NAFTA) except it will create rules and regulations regarding private copying and copyright laws.
Federal trade agreements do not require parliamentary approval.
The deal would create a international regulator that could turn border guards and other public [...]]]></description>
			<content:encoded><![CDATA[<p>Have you heard about the ‘Anti-Counterfeiting Trade Agreement,’</p>
<blockquote><p>The agreement is being structured much like the North American Free Trade Agreement (NAFTA) except it will create rules and regulations regarding private copying and copyright laws.<br />
Federal trade agreements do not require parliamentary approval.<br />
The deal would create a international regulator that could turn border guards and other public security personnel into copyright police. The security officials would be charged with checking laptops, iPods and even cellular phones for content that &#8220;infringes&#8221; on copyright laws, such as ripped CDs and movies.<br />
The guards would also be responsible for determining what is infringing content and what is not.<br />
The agreement proposes any content that may have been copied from a DVD or digital video recorder would be open for scrutiny by officials - even if the content was copied legally.</p>
<p><strong>Source</strong>:<a href="http://www.canada.com/topics/technology/science/story.html?id=ae997868-220b-4dae-bf4f-47f6fc96ce5e&amp;p=1">http://www.canada.com/topics/technology/science/story.html?id=ae997868-220b-4dae-bf4f-47f6fc96ce5e&amp;p=1</a></p></blockquote>
<p>Its being structured like a trade agreement so it won’t have to be put in front of Parliament.<br />
What this means is that when you cross the board the boarder guards will have the right to inspect your electronic equipment for IP such as MP3s, DVDs, home movies.</p>
<p>If you data is encrypted (like most of mine) they have the right to ask for the password to your data. If you refuse then you will not be allowed in the country. Just imagine if you are trying to catch a flight, you have 30 mins to get there but they have to make a copy of all your data, inspect if for IP infringements ect.</p>
<p>Most of my music is rips of Legitimate CDs that I own, PODcasts, and Creative Commons music.<br />
How is a boarder guard suppose to identify what I have rightly purchased and what I haven’t?</p>
<blockquote><p>Fewer and Geist said, once Canada signs the new trade agreement it will be next to impossible to back out of it. In a situation similar to what happened in the Softwood Lumber trade dispute, Canadians could face hefty penalties if it does not comply with ACTA after the agreement has been completed.<br />
<strong>Source</strong>: <a href="http://www.canada.com/topics/technology/science/story.html?id=ae997868-220b-4dae-bf4f-47f6fc96ce5e&amp;p=2">http://www.canada.com/topics/technology/science/story.html?id=ae997868-220b-4dae-bf4f-47f6fc96ce5e&amp;p=2</a></p></blockquote>
<p>So after the agreements has been put in to place, We could start to see hefty penalties for breaches in the trade agreement.<br />
Like fair use. In Canada it is legal to make personal copies of music that you own for your own purposes</p>
<blockquote><p>Except that private copying of music is legal in Canada [cb-cda.gc.ca].<br />
the act of reproducing all or any substantial part of<br />
(a) a musical work embodied in a sound recording,<br />
(b) a performer&#8217;s performance of a musical work embodied in a sound recording, or<br />
(c) a sound recording in which a musical work, or a performer&#8217;s performance of a musical work, is embodied<br />
onto an audio recording medium for the private use of the person who makes the copy does not constitute an infringement of the copyright in the musical work, the performer&#8217;s performance or the sound recording.</p></blockquote>
<p>But this is not true in the USA, so any music that you make legal copies of in Canada are illegal in USA.<br />
Once Canada gets a few heavy fines for breaking the ACTA Parliament will be pushed in to making stronger laws to fight against IP thief and with that goes the need for a warrant to get access logs from our ISP, and other horrible things I don’t even want to think about.</p>
<p>I believe strongly against this, as I believe it only benefits USA companies like the RIAA and the MPAA.<br />
Its also seemed to me that it  attempts to circumvent the democratic process by making it a trade agreement instead of a law that would have to be passed in parliament.</p>
<p>Please please contact your member of parliament and tell them what you think about this.<br />
<a href="http://webinfo.parl.gc.ca/MembersOfParliament/MainMPsCompleteList.aspx?TimePeriod=Current&amp;Language=E"> List of all parliament members</a></p>
<ul>
<li><a href="http://webinfo.parl.gc.ca/MembersOfParliament/ProfileConstituency.aspx?Key=565&amp;Language=E"> Vancouver East </a></li>
<li><a href="http://webinfo.parl.gc.ca/MembersOfParliament/ProfileConstituency.aspx?Key=564&amp;Language=E"> Vancouver center</a></li>
<li><a href="http://webinfo.parl.gc.ca/MembersOfParliament/ProfileConstituency.aspx?Key=562&amp;Language=E">White rock, south surrey: </a></li>
</ul>
<p>More information</p>
<ul>
<li><a href="http://www.canada.com/topics/technology/science/story.html?id=ae997868-220b-4dae-bf4f-47f6fc96ce5e&amp;p=2"> Copyright deal could toughen rules governing info on iPods, computers</a></li>
<li><a href="http://yro.slashdot.org/article.pl?sid=08/05/26/2312244&amp;from=rss"> Slashdot</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/anti-counterfeiting-trade-agreement-bad/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to block spam on a wordpress Blog</title>
		<link>http://www.abluestar.com/blog/how-to-block-spam-on-a-wordpress-blog/</link>
		<comments>http://www.abluestar.com/blog/how-to-block-spam-on-a-wordpress-blog/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 19:13:41 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Blogging Tips]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[spam]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=428</guid>
		<description><![CDATA[To help stop spam activate the Akismet plugin.

Login to your wordpress blog
On the right hand side there is a pugin button, click it
Activate Akismet plugin (download here if its not all ready installed)
Get a Wordpress API key http://wordpress.com/api-keys/ (its free)
Set the Wordpress API key in the Akismet settings page.

99.98 % of spam will automatically be [...]]]></description>
			<content:encoded><![CDATA[<p>To help stop spam activate the <a href="http://akismet.com/download/">Akismet plugin</a>.</p>
<ol>
<li>Login to your wordpress blog</li>
<li>On the right hand side there is a pugin button, click it</li>
<li>Activate Akismet plugin (<a href="http://akismet.com/download/">download here</a> if its not all ready installed)</li>
<li>Get a Wordpress API key <a href="http://wordpress.com/api-keys/">http://wordpress.com/api-keys/</a> (its free)</li>
<li>Set the Wordpress API key in the Akismet settings page.</li>
</ol>
<p>99.98 % of spam will automatically be rejected. You should check the spam folder every once in a while to remove false positives.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/how-to-block-spam-on-a-wordpress-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>NSIS - tips and tricks</title>
		<link>http://www.abluestar.com/blog/nsis-tips-and-tricks/</link>
		<comments>http://www.abluestar.com/blog/nsis-tips-and-tricks/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 18:39:26 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Tips and Tricks]]></category>

		<category><![CDATA[snippet]]></category>

		<category><![CDATA[nsis]]></category>

		<category><![CDATA[programing]]></category>

		<category><![CDATA[scripts]]></category>

		<category><![CDATA[tips]]></category>

		<category><![CDATA[tricks]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=427</guid>
		<description><![CDATA[I create a lot of windows application to make things easier for my customers. The simple act of coping a file from an email to a certain directory can become the most complicated tasks for a certain type of customer.
I use an Scriptable Install System provided by NullSoft called NSIS (Nullsoft Scriptable Install System). Ita [...]]]></description>
			<content:encoded><![CDATA[<p>I create a lot of windows application to make things easier for my customers. The simple act of coping a file from an email to a certain directory can become the most complicated tasks for a certain type of customer.</p>
<p>I use an Scriptable Install System provided by <a href="http://www.nullsoft.com/">NullSoft</a> called <a href="http://nsis.sourceforge.net/Main_Page">NSIS </a>(Nullsoft Scriptable Install System). Ita great system that just plain works. Its free, open source, and can be used for <a href="http://nsis.sourceforge.net/License">commercial products</a>, Great plugin system, Dead simple for simple things, <a href="http://nsis.sourceforge.net/Features">ect</a>.</p>
<p>The <a href="http://nsis.sourceforge.net/Docs/Contents.html">manual</a> has lots of examples and function documentation to help <a href="http://nsis.sourceforge.net/Download">get you started</a>.</p>
<p>Over the last few years of using this program I have created a library of useful little snippets of code. Free free to comment with your own.</p>
<p><strong>Opening a directory</strong></p>
<blockquote><p>ExecShell &#8220;open&#8221; &#8216;&#8221;$INSTDIR&#8221;&#8216;<br />
BringToFront</p></blockquote>
<p><strong>Registering/unregistering personal ActiveX files</strong></p>
<blockquote><p>UnRegDLL &#8220;$SYSDIR\spin32.ocx&#8221;<br />
RegDLL &#8220;$SYSDIR\spin32.ocx&#8221;</p></blockquote>
<p><strong>Checking if a process is running</strong><br />
This uses the <a href="http://forums.winamp.com/showthread.php?threadid=181974">FindProcDLL::FindProc</a> plug-in (<a href="http://nsis.sourceforge.net/archive/viewpage.php?pageid=483">here</a> also):</p>
<blockquote><p>StrCpy $1 &#8220;mybin.exe&#8221;<br />
FindProcDLL::FindProc &#8220;$1&#8243;<br />
;0   = Process was not found<br />
;1   = Process was found<br />
;605 = Unable to search for process<br />
;606 = Unable to identify system type<br />
;607 = Unsupported OS<br />
;632 = Process name is invalid<br />
StrCmp $R0 0 0 error<br />
File &#8220;mybin.exe&#8221; ; Can&#8217;t use a variable<br />
Goto end<br />
error:<br />
MessageBox MB_OK|MB_ICONSTOP &#8220;The application $1 is currently running. Press CTRL-ALT-DEL to display the list of running processes.&#8221;<br />
Quit<br />
end:</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/nsis-tips-and-tricks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rule 34: If it exists, there is porn of it. No exceptions.</title>
		<link>http://www.abluestar.com/blog/rule-34-if-it-exists-there-is-porn-of-it-no-exceptions/</link>
		<comments>http://www.abluestar.com/blog/rule-34-if-it-exists-there-is-porn-of-it-no-exceptions/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 08:01:46 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Neat stuff]]></category>

		<category><![CDATA[comic]]></category>

		<category><![CDATA[pron]]></category>

		<category><![CDATA[wetriffs]]></category>

		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=426</guid>
		<description><![CDATA[http://xkcd.com/305/
Rule 34: If it exists, there is porn of it. No exceptions.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://xkcd.com/305/"><img class="alignnone size-full wp-image-425" title="rule_34" src="http://www.abluestar.com/blog/wp-content/uploads/2008/04/rule_34.png" alt="" /></a></p>
<p><a href="http://xkcd.com/305/">http://xkcd.com/305/</a></p>
<p>Rule 34: If it exists, there is porn of it. No exceptions.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/rule-34-if-it-exists-there-is-porn-of-it-no-exceptions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XKCD - Social-b 99.1</title>
		<link>http://www.abluestar.com/blog/xkcd-social-b-991/</link>
		<comments>http://www.abluestar.com/blog/xkcd-social-b-991/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 07:56:43 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Neat stuff]]></category>

		<category><![CDATA[rules]]></category>

		<category><![CDATA[social]]></category>

		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/?p=423</guid>
		<description><![CDATA[http://xkcd.com/330/
Rule Social-b. 99.1
If friends spend more then 60 minutes unable to decide what to do, they must default to sexual experimentation.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://xkcd.com/330/"><img class="alignnone size-full wp-image-424" title="indecision" src="http://www.abluestar.com/blog/wp-content/uploads/2008/04/indecision.png" alt="" /></a></p>
<p><a href="http://xkcd.com/330/">http://xkcd.com/330/</a></p>
<p>Rule Social-b. 99.1<br />
If friends spend more then 60 minutes unable to decide what to do, they must default to sexual experimentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/xkcd-social-b-991/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rabo Encendido(Cuban Oxtail Stew)</title>
		<link>http://www.abluestar.com/blog/rabo-encendidocuban-oxtail-stew/</link>
		<comments>http://www.abluestar.com/blog/rabo-encendidocuban-oxtail-stew/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 07:55:15 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Cooking]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/rabo-encendidocuban-oxtail-stew/</guid>
		<description><![CDATA[Ingredients

 5 lbs oxtail, cut in 2 inch thick rounds
 1 cup flour
 1/2 cup cajun seasoning
 3 tablespoons olive oil
 1 cup port wine
 1 large Spanish onion, diced
 1 large carrot
 3 stalks celery, diced
 3 italian frying bell pepper, cut into large pieces
 1 cup red wine
 1 (10 ounce) can whole [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.abluestar.com/blog/wp-content/uploads/2008/04/ox_tail_web.jpg" alt="ox_tail_web.jpg" align="right" /><strong>Ingredients</strong></p>
<ul>
<li> 5 lbs oxtail, cut in 2 inch thick rounds</li>
<li> 1 cup flour</li>
<li> 1/2 cup cajun seasoning</li>
<li> 3 tablespoons olive oil</li>
<li> 1 cup port wine</li>
<li> 1 large Spanish onion, diced</li>
<li> 1 large carrot</li>
<li> 3 stalks celery, diced</li>
<li> 3 italian frying bell pepper, cut into large pieces</li>
<li> 1 cup red wine</li>
<li> 1 (10 ounce) can whole tomato</li>
<li> 1/2 can chipotle chile in adobo</li>
<li> 1 cup sherry wine</li>
<li> 3 bay leaf</li>
<li> 1 bunch thyme, chopped</li>
<li> salt</li>
<li> pepper</li>
</ul>
<p><strong>Directions</strong></p>
<ol>
<li>Coat oxtail pieces with the flour and Cajun seasoning, and sear them in 3 tablespoons oil and remove from the pan.</li>
<li>Then degrease the pan and deglaze with port and reserve for later use.</li>
<li>In a separate pot caramelize the onions, carrot, celery and peppers, then deglaze with the red wine.</li>
<li>Add the oxtails to the vegetables.</li>
<li>Continue by adding in the tomatoes, chipotle, sherry, bay leaves and thyme and simmer for approximately 3 hours.</li>
<li>Season to taste with salt and pepper and serve.</li>
</ol>
<p>Source: <a href="http://www.recipezaar.com/27422">http://www.recipezaar.com/27422</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/rabo-encendidocuban-oxtail-stew/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WHAT IS reCAPTCHA</title>
		<link>http://www.abluestar.com/blog/what-is-recaptcha/</link>
		<comments>http://www.abluestar.com/blog/what-is-recaptcha/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 21:35:12 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Web development]]></category>

		<category><![CDATA[CAPTCHA]]></category>

		<category><![CDATA[OCR]]></category>

		<category><![CDATA[Optical character recognition]]></category>

		<category><![CDATA[Puzzle]]></category>

		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/what-is-recaptcha/</guid>
		<description><![CDATA[ A CAPTCHA is a program that can tell whether its user is a human or a computer. You&#8217;ve probably seen them — colorful images with distorted text at the bottom of Web registration forms. CAPTCHAs are used by many websites to prevent abuse from &#8220;bots,&#8221; or automated programs usually written to generate spam. No [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="padding-top: 0px"> A <a href="http://recaptcha.net/captcha.html">CAPTCHA</a> is a program that can tell whether its user is a human or a computer. You&#8217;ve probably seen them — colorful images with distorted text at the bottom of Web registration forms. CAPTCHAs are used by many websites to prevent abuse from &#8220;bots,&#8221; or automated programs usually written to generate spam. No computer program can read distorted text as well as humans can, so bots cannot navigate sites protected by CAPTCHAs.</p>
<p> About 60 million CAPTCHAs are solved by humans around the world every day. In each case, roughly ten seconds of human time are being spent. Individually, that&#8217;s not a lot of time, but in aggregate these little puzzles consume more than 150,000 hours of work each day. What if we could make positive use of this human effort? <a href="http://en.wikipedia.org/wiki/ReCAPTCHA" title="ReCAPTCHA" rel="wikipedia" target="_blank" class="zem_slink">reCAPTCHA</a> does exactly that by channeling the effort spent solving CAPTCHAs online into &#8220;reading&#8221; books.</p>
<p>To archive <a href="http://en.wikipedia.org/wiki/Knowledge" title="Knowledge" rel="wikipedia" target="_blank" class="zem_slink">human knowledge</a> and to make information more accessible to the world, multiple projects are currently digitizing physical books that were written before the computer age. The book pages are being photographically scanned, and then, to make them searchable, transformed into text using &#8220;Optical Character Recognition&#8221; (OCR). The transformation into text is useful because scanning a book produces images, which are difficult to store on small devices, expensive to download, and cannot be searched. The problem is that OCR is not perfect.</p>
<p><center><img src="http://www.abluestar.com/blog/wp-content/uploads/2008/04/sample-ocr.gif" alt="sample-ocr.gif" /></center></p>
<p style="padding-top: 5px">reCAPTCHA improves the process of digitizing books by sending words that cannot be read by computers to the Web in the form of CAPTCHAs for humans to decipher. More specifically, each word that cannot be read correctly by OCR is placed on an image and used as a <a href="http://en.wikipedia.org/wiki/CAPTCHA" title="CAPTCHA" rel="wikipedia" target="_blank" class="zem_slink">CAPTCHA</a>. This is possible because most OCR programs alert you when a word cannot be read correctly.</p>
<p> But if a computer can&#8217;t read such a CAPTCHA, how does the system know the correct answer to the puzzle? Here&#8217;s how: Each new word that cannot be read correctly by OCR is given to a user in conjunction with another word for which the answer is already known. The user is then asked to read both words. If they solve the one for which the answer is known, the system assumes their answer is correct for the new one. The system then gives the new image to a number of other people to determine, with higher confidence, whether the original answer was correct.</p>
<p>Source: <a href="http://recaptcha.net/learnmore.html">http://recaptcha.net/learnmore.html</a></p></blockquote>
<p>Supremely awesome!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/what-is-recaptcha/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bar Tricks</title>
		<link>http://www.abluestar.com/blog/bar-tricks/</link>
		<comments>http://www.abluestar.com/blog/bar-tricks/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 20:16:20 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Neat stuff]]></category>

		<category><![CDATA[Bar Accessories]]></category>

		<category><![CDATA[tricks]]></category>

		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/bar-tricks/</guid>
		<description><![CDATA[You&#8217;ve been buying your own booze at the local bar like a sucker ever since you turned 21. But with a stiff shot of science, you can hustle the tipsy into picking up your tab. Try this pub magic to score yourself some free rounds. — William Snyder
Wired has a nice wiki page about some [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center">
<blockquote><p>You&#8217;ve been buying your own booze at the local bar like a sucker ever since you turned 21. But with a stiff shot of science, you can hustle the tipsy into picking up your tab. Try this pub magic to score yourself some free rounds. <em>— William Snyder</em></p></blockquote>
<p>Wired has a nice wiki page about some different Bar tricks that you can do to win yourself a free drink or two.  <a href="http://howto.wired.com/wiki/Do_Bar_Tricks">DO Bar Tricks</a></p>
<p>There is also a great YouTube Video, <a href="http://www.youtube.com/watch?v=_bmRQD07HV0">1000 different ways to open a beer bottle.</a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/_bmRQD07HV0&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/_bmRQD07HV0&amp;hl=en" wmode="transparent"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/bar-tricks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP strip non alphanumeric</title>
		<link>http://www.abluestar.com/blog/php-strip-non-alphanumeric/</link>
		<comments>http://www.abluestar.com/blog/php-strip-non-alphanumeric/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 04:43:11 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Blogging Tips]]></category>

		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/php-strip-non-alphanumeric/</guid>
		<description><![CDATA[On EveryDayFiction.com, in the titles of the posts our editors insisted on including a non alphanumeric character.
The little dot that separates the title from the author. This causes havoc with a lot of my scripts and is really freaking annoying.
This handy little function strips all the non  alphanumeric character from the string.
function strip_non_alnum($str) {
$str = [...]]]></description>
			<content:encoded><![CDATA[<p>On <a href="http://www.everydayfiction.com/">EveryDayFiction.com</a>, in the titles of the posts our editors insisted on including a non alphanumeric character.<br />
The little dot that separates the title from the author. This causes havoc with a lot of my scripts and is really freaking annoying.</p>
<p>This handy little function strips all the non  alphanumeric character from the string.</p>
<blockquote><p>function strip_non_alnum($str) {<br />
$str = preg_replace(&#8217;~^(\s*)(.*?)(\s*)$~m&#8217;, &#8220;\\2&#8243;, $str);<br />
$str = ereg_replace(&#8221;[^[:alnum:] ]&#8221;,&#8221;",$str);<br />
return $str ;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/php-strip-non-alphanumeric/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Last windows boot time, Install date</title>
		<link>http://www.abluestar.com/blog/last-windows-boot-time-install-date/</link>
		<comments>http://www.abluestar.com/blog/last-windows-boot-time-install-date/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 20:29:36 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Tips and Tricks]]></category>

		<category><![CDATA[dos]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/last-windows-boot-time-install-date/</guid>
		<description><![CDATA[Do you remember the exact date or time when you last switched on the computer ?
Here’s a simple DOS command to help you out:
systeminfo &#124; find /i “boot time”
This will show the time when you last rebooted the computer.
If you want to know when you stalled windows on your PC
systeminfo &#124; find /i “install date”
]]></description>
			<content:encoded><![CDATA[<p>Do you remember the exact date or time when you last switched on the computer ?<br />
Here’s a simple DOS command to help you out:</p>
<blockquote><p>systeminfo | find /i “boot time”</p></blockquote>
<p>This will show the time when you last rebooted the computer.<br />
If you want to know when you stalled windows on your PC</p>
<blockquote><p>systeminfo | find /i “install date”</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/last-windows-boot-time-install-date/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The quick and dirty way of getting the size of a file up to 4GB.</title>
		<link>http://www.abluestar.com/blog/the-quick-and-dirty-way-of-getting-the-size-of-a-file-up-to-4gb/</link>
		<comments>http://www.abluestar.com/blog/the-quick-and-dirty-way-of-getting-the-size-of-a-file-up-to-4gb/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 22:23:10 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[snippet]]></category>

		<category><![CDATA[c]]></category>

		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/the-quick-and-dirty-way-of-getting-the-size-of-a-file-up-to-4gb/</guid>
		<description><![CDATA[I&#8217;m often surprised how many times this question has come up by beginner programmers.
How do you tell the size of a file in win32?
This method will fail on files greater then 4GB, and its slower then other methods but it quick and easy as long as you are not dealing with files greater then 4gb.
FILE [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m often surprised how many times this question has come up by beginner programmers.<br />
How do you tell the size of a file in win32?</p>
<p>This method will fail on files greater then 4GB, and its slower then other methods but it quick and easy as long as you are not dealing with files greater then 4gb.</p>
<pre>FILE * h_file = NULL ;
if( h_file = fopen( h_file, "rb" )  != NULL ) {
	fseek(h_file, 0, SEEK_END);
	long file_size = ftell(h_file);
	fclose( h_file );
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/the-quick-and-dirty-way-of-getting-the-size-of-a-file-up-to-4gb/feed/</wfw:commentRss>
		</item>
		<item>
		<title>403 - An arrogant initiative in defense of the web</title>
		<link>http://www.abluestar.com/blog/403-an-arrogant-initiative-in-defense-of-the-web/</link>
		<comments>http://www.abluestar.com/blog/403-an-arrogant-initiative-in-defense-of-the-web/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 19:25:25 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Neat stuff]]></category>

		<category><![CDATA[Tips and Tricks]]></category>

		<category><![CDATA[Web development]]></category>

		<category><![CDATA[403]]></category>

		<category><![CDATA[dhtml]]></category>

		<category><![CDATA[firefox]]></category>

		<category><![CDATA[ie]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/403-an-arrogant-initiative-in-defense-of-the-web/</guid>
		<description><![CDATA[I hate internet explorer, I hate it so much. At lest once a day I curse it to the pits of hell to be torched endlessly by a Richard Simmons kazoo band. My hate for internet explorer mainly comes from my own laziness, I just don&#8217;t want to spend the time to create the same [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webdesignerwall.com/general/trash-all-ie-hacks/">I</a> <a href="http://urbansemiotic.com/2006/01/13/why-i-hate-internet-explorer/">hate</a> <a href="http://ie.jemjabella.com/">internet</a> <a href="http://www.456bereastreet.com/archive/200605/microsoft_and_internet_explorer_vs_web_standards/">explorer</a>, <a href="http://www.negative99.com/archive/220">I</a> <a href="http://www.positioniseverything.net/explorer.html">hate</a> <a href="http://www.communitymx.com/content/article.cfm?page=2&amp;cid=C37E0">it</a> <a href="http://www.free-bees.co.uk/articles/ihateie/">so</a> <a href="http://blogs.msdn.com/cwilso/archive/2006/05/11/595536.aspx">much</a>. At lest once a day I curse it to the <a href="http://en.wikipedia.org/wiki/Tartarus">pits of hell</a> to be torched endlessly by a <a href="http://en.wikipedia.org/wiki/Richard_Simmons">Richard Simmons</a> <a href="http://en.wikipedia.org/wiki/Kazoo">kazoo </a>band. My hate for internet explorer mainly comes from my own laziness, I just don&#8217;t want to spend the time to create the same website twice, once for internet explorer and again for everyone else. I don&#8217;t believe that we should have too, Microsoft should follow the standard set out by <a href="http://www.w3.org/">The World Wide Web Consortium (W3C)</a>. A standard that all the other major browsers support.</p>
<p><strong>Internet explore hurts the internet. </strong></p>
<p>A while ago I had this idea, to create a javascript that you install on your website that created a <a href="http://en.wikipedia.org/wiki/Dynamic_HTML">DHTML</a> pop up if you browse the site with internet explorer. The pop up would tell you about the advantages of using other browsers, the disadvantages of using IE, and links to download locations. At the bottom there would be a check box that disables the pop up for a single session. next time they come back the would get the same pop up until they change browsers.</p>
<p>But it looks like someone else beat me too it. <a href="http://403day.org/">http://403day.org/</a></p>
<p>I would love to install this <a href="http://www.jaydensmethurst.com/">script</a> <a href="http://www.kevingsanders.com/">on</a> <a href="http://www.chipkin.com">all</a> <a href="http://www.camilladerrico.com/">the</a> <a href="http://www.criticaloddness.com/">websites</a> <a href="http://www.ill-esha.com">that</a> <a href="http://www.everydayfiction.com/">I</a> <a href="http://rulingatlife.com/">have</a> <a href="http://www.axxiumpaintball.com">Dev</a> <a href="http://www.alephersatz.com">accesses</a> <a href="http://www.istolethebaby.com">to</a> but that wouldn&#8217;t be nice. So instead I have installed it on my two biggest websites. <a href="http://www.funvill.com">Funvill.com</a> and <a href="http://www.abluestar.com/">Abluestar.com</a>. Funvill.com still pulls in about 20k a month in unique visitors even thou I shut it down about a year ago and Abluestar.com last month got 675k unique visitors thanks to <a href="http://www.stumbleupon.com/">stumbleupon</a>. Between Abluestar.com and Funvill.com 88% of visitors are using Firefox and 11% internet explore. So basically I am throwing away 76k unique visitors in hopes that some of them will upgrade to a new browser.</p>
<p><strong>I HATE INTERNET EXPLORE</strong></p>
<p>Below I have included some hate quotes about internet explore that I enjoyed.</p>
<blockquote><p>This is why web developers need to stop working around shitty rendering engines en masse. Every single time we - as developers - utilize hacks to make things work in IE where they&#8217;re fine in WebKit, Gecko, et. al., we further allow IE to be as bad as it is. Do you honestly think IE would be the POS it is today if the world&#8217;s web sites didn&#8217;t work in it? Every single time we work around it we provide Microsoft reason not to change anything. Literally. Microsoft&#8217;s biggest concern has always been backwards compatibility, and it is that reason that so many of the issues we have now we also had then. It would be one thing if IE7 had shown considerable improvement in this regard, but that simply isn&#8217;t the case. IE7 kept some bugs, and swapped out some well-known ones for others, which we now have to hack around, again.<br />
<strong>Source</strong>: <a href="http://developers.slashdot.org/article.pl?sid=07/12/07/1859205">http://developers.slashdot.org/article.pl?sid=07/12/07/1859205</a></p></blockquote>
<blockquote><p>MS doesn&#8217;t want those fixed. Seriously, they make money by ensuring that other browsers can&#8217;t compete because the Web is broken to conform to IE&#8217;s modifications of the standards. In this way they lock people into their platform. If IE was standard compliant, then soon Web apps would be standard compliant, and then why the hell would big companies stick with IE and an expensive OS, when they can just run Linux for free?<br />
<strong>Source</strong>: <a href="http://developers.slashdot.org/article.pl?sid=07/12/07/1859205">http://developers.slashdot.org/article.pl?sid=07/12/07/1859205</a></p></blockquote>
<blockquote><p>IE will never have the same functionality, at least in terms of standards compliance, as other browsers as long as MS is allowed to bundle it without also bundling competitors. The Web will remain broken so long as MS is allowed to abuse their monopoly and numerous other markets will be broken as well, with innovation intentionally slowed for their profit. It is long past time the government enforced the fucking laws against MS, despite all the campaign contributions they made to both parties<br />
<strong>Source</strong>: <a href="http://developers.slashdot.org/article.pl?sid=07/12/07/1859205">http://developers.slashdot.org/article.pl?sid=07/12/07/1859205</a></p></blockquote>
<blockquote><p>If browsers actually required that we provide valid code each and every time, things would be a lot better. How many browser security holes can be traced to a parser that would not have been affected had it simply seen invalid input and rejected it? How much simpler and faster would browsers be if they didn&#8217;t spend so much time trying to figure out what the person who wrote the code intended? How much more accessible would the content on those pages be to alternative browsers, like screenreaders?<br />
<strong>Source</strong>: <a href="http://developers.slashdot.org/article.pl?sid=07/12/07/1859205">http://developers.slashdot.org/article.pl?sid=07/12/07/1859205</a></p></blockquote>
<blockquote><p>We&#8217;ve been running for way too long on the mindset that anybody can build web pages. Web browsers were built with this mentality. If I&#8217;m integrating with an enterprise XML API, and I feed it bad data, it gives me the proverbial finger. Why should web pages be any different? If you want to put stuff online, learn how to do it properly. The web is a cesspool for precisely this reason, and you can&#8217;t blame the standards themselves. The XHTML and CSS specs are by no means perfect, but writing well-formed XHTML and CSS is not difficult. Requiring developers to ensure that every start tag has an end tag, proper nested order, alt tags, and the like, would go a long way toward keeping the architecture of the Internet sustainable. Granted, it might put sites like Myspace out of business, but I&#8217;ll go out on a limb and say that&#8217;s not a bad thing.<br />
<strong>Source</strong>: <a href="http://developers.slashdot.org/article.pl?sid=07/12/07/1859205">http://developers.slashdot.org/article.pl?sid=07/12/07/1859205</a></p></blockquote>
<blockquote><p>&#8220;In yet another instance of up-and-coming browser developers fighting back against the Microsoft behemoth, the makers of Opera have filed a complaint with the European Union against Microsoft. In their complaint, they allege that IE&#8217;s 77% market share abuses its dominant position by tying IE to Windows and its refusal to accept Web standards, causing significant interoperability issues. The complaint also requests that the EU&#8217;s Antitrust Division force Microsoft to separate IE from Windows and accept several different standards, thereby resolving major interoperability issues and providing consumers more choice in the browser market.&#8221;<br />
<strong>Source</strong>: <a href="http://slashdot.org/article.pl?sid=07/12/14/192240">http://slashdot.org/article.pl?sid=07/12/14/192240</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/403-an-arrogant-initiative-in-defense-of-the-web/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Leap Year post!</title>
		<link>http://www.abluestar.com/blog/leap-year-post/</link>
		<comments>http://www.abluestar.com/blog/leap-year-post/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 21:47:28 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Neat stuff]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/leap-year-post/</guid>
		<description><![CDATA[February 29 is a date that only occurs once every four years, and is called leap day. This day is added to the calendar in leap years as a corrective measure, because the earth does not orbit around the sun in precisely 365.000 days.
The chance of being born on leap year day is about 1 [...]]]></description>
			<content:encoded><![CDATA[<p>February 29 is a date that only occurs once every four years, and is called leap day. This day is added to the calendar in leap years as a corrective measure, because the earth does not orbit around the sun in precisely 365.000 days.<br />
The chance of being born on leap year day is about 1 in 1,500, there are about 4 million people worldwide with February 29 as there birthday.</p>
<p>This is the algorithm that I used to determine if a given year is a leap year or not. I&#8217;m not sure where I got it from but it comes in handy when creating calendar applications.</p>
<blockquote><p> if (year % 4 == 0) &amp;&amp; ((year % 100 != 0) or (year % 400 == 0))<br />
then leap<br />
else no_leap</p></blockquote>
<p>I&#8217;m sure there are more interesting things about leap years that I don&#8217;t know.<br />
I suggest that you check out <a href="http://en.wikipedia.org/">wikipedia.org</a> page on <a href="http://en.wikipedia.org/wiki/Leap_year">Leap_year</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/leap-year-post/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open DNS</title>
		<link>http://www.abluestar.com/blog/opendns/</link>
		<comments>http://www.abluestar.com/blog/opendns/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 23:13:18 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Tips and Tricks]]></category>

		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/opendns/</guid>
		<description><![CDATA[OpenDNS is a custom DNS server that you can use instead of using your IPS&#8217;s DNS server.
It checks any address that you lookup against its own list of bad sites (phishing scams, and other things) and redirects you accordingly. It also provides a simple way of enabling/disabling blocking of adult websites.
It often used in schools [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.opendns.com/">OpenDNS </a>is a custom DNS server that you can use instead of using your IPS&#8217;s DNS server.<br />
It checks any address that you lookup against its own list of bad sites (phishing scams, and other things) and redirects you accordingly. It also provides a simple way of enabling/disabling blocking of adult websites.</p>
<p>It often used in schools and big office networks because it allows you to enter in your own black list of sites to block such as YouTube, MySpace and Facebook.  (Note: If your school or work blocks MySpace, Facebook, or YouTube, you might be able to regain access by changing your DNS address to different public DNS server or use a <a href="http://www.google.com/search?hl=en&amp;client=firefox-a&amp;rls=org.mozilla%3Aen-US%3Aofficial&amp;hs=3cT&amp;q=public+Proxy&amp;btnG=Search">public proxy</a>) It also provides trending stats on what web pages are visited most, how often, how how long each visit was. (Great for network techs)</p>
<p>A side effect of letting you black list domains is that it lets you disable most ad network, by disabling the DNS look up of there domain. (great for people that hate ads)</p>
<p>The service is great, lots of features, flexibility, its free and easy to use. I will probably install on my parents computer BUT!</p>
<blockquote><p><strong>How does OpenDNS make money?</strong><br />
OpenDNS makes money by offering clearly labeled advertisements alongside <em>organic search results when the domain entered is not valid and not a typo we can fix</em>. OpenDNS will provide additional services on top of its enhanced DNS service, and some of them may cost money. Speedy, reliable DNS will always be free.</p></blockquote>
<p>When you type in a bad domain instead of returning &#8220;<a href="http://en.wikipedia.org/wiki/404_error">domain not found</a>&#8221; error message it forwards you to a search page with ads on it, this is how they pay for this service. A lot of <a href="http://www.abluestar.com/blog/utilities/">my applications</a> that I write rely on this &#8220;<a href="http://en.wikipedia.org/wiki/404_error">domain not found</a>&#8221; error message. I been getting an increase in the amount of support calls from people that are use this service and because it disables the 404 error and <a href="http://www.abluestar.com/blog/utilities/">my free utilities</a>. I now have to update some my utilities to support DNS servers that don&#8217;t support &#8220;<a href="http://en.wikipedia.org/wiki/404_error">domain not found</a>&#8221; error message.</p>
<p>Great service but it has one fatal flaw, it tried to make money.</p>
<p>The OpenDNS Name Servers are <strong>208.67.222.222</strong> and <strong>208.67.220.220</strong>.</p>
<hr /> <em style="color: red">Update:<br />
</em><strong>John Roberts</strong> from OpenDNS  contacted me  via comment asking me for more details on this problem. I&#8217;m always impressed when support staff search the internet for reviews, questions and comments about there products.I have included two <a href="http://www.wireshark.org/">Wireshark</a> log files <a href="http://www.abluestar.com/blog/wp-content/uploads/2008/02/nonopendns.txt" title="nonopendns.txt">nonopendns.txt</a>, <a href="http://www.abluestar.com/blog/wp-content/uploads/2008/02/opendns.txt" title="opendns.txt">opendns.txt</a>In the first file nonOpenDNS log in frame#2 in the DNS section it read</p>
<blockquote><p><em>Flags: 0&#215;8183 (Standard query response, No such name)</em></p></blockquote>
<p>In the second file the OpenDNS log  in frame #3 in the DNS section it reads</p>
<blockquote><p><em>Flags: 0&#215;8180 (Standard query response, No error)</em><br />
<em> Answers</em><br />
<em> xxxxxxxxxxnothere.com: type A, class IN, addr 208.67.217.130</em><br />
<em> </em></p></blockquote>
<p>The open DNS server redirected the response from a dead address, my utilities can not longer find out if a domain is valid or not and no longer work. I&#8217;m in the process of creating a work around and it shouldn&#8217;t be too hard.</p>
<p>I should also mention that I am by no means an expert at DNS stuff. Most of knowledge comes from hacking together what I needed when I needed it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/opendns/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to disable AVG 7 temporarily.</title>
		<link>http://www.abluestar.com/blog/how-to-disable-avg-7-temporarily/</link>
		<comments>http://www.abluestar.com/blog/how-to-disable-avg-7-temporarily/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 19:27:13 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/how-to-disable-avg-7-temporarily/</guid>
		<description><![CDATA[There are various reasons to disable your anti virus temporarily.
AVG 7 does not make it easy to disable it.
 Instructions 

Right click on the AVG icon in your system tray (bottom right next to the clock)
Select &#8220;Launch AVG Free Control Center&#8221;
On the Security status page, you should see a list of items with green check boxes next [...]]]></description>
			<content:encoded><![CDATA[<p>There are various reasons to disable your anti virus temporarily.<br />
AVG 7 does not make it easy to disable it.</p>
<p><strong> Instructions </strong></p>
<ol>
<li>Right click on the AVG icon in your system tray (bottom right next to the clock)</li>
<li>Select &#8220;Launch AVG Free Control Center&#8221;</li>
<li>On the Security status page, you should see a list of items with green check boxes next to them.</li>
<li>Right click on &#8220;Resident shield&#8221; and select &#8220;Properties&#8221;</li>
<li>Un check &#8220;Turn on AVG Free resident Shield protectio&#8221;</li>
<li>Click OK</li>
</ol>
<p>Remember to re-enable the virus scanner when you are done doing what ever you are doing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/how-to-disable-avg-7-temporarily/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tom Kha Gai</title>
		<link>http://www.abluestar.com/blog/tom-kha-gai/</link>
		<comments>http://www.abluestar.com/blog/tom-kha-gai/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 00:16:57 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Cooking]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/tom-kha-gai/</guid>
		<description><![CDATA[This is a mild but spicy chicken soup (it can also be made with shrimp, pork, beef or mushrooms), flavored with the very unique flavor of galangal (&#8221;kha&#8221; in Thai) which creates a heavenly taste when combined with hot chile peppers, coconut milk, lime leaves and lemongrass.
Ingredients

16 fluid ounces soup broth (chicken stock)
4-5 kaffir lime [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.abluestar.com/blog/wp-content/uploads/2008/02/0003_polevka_tom_kha_gai.jpg" title="0003_polevka_tom_kha_gai.jpg"><img src="http://www.abluestar.com/blog/wp-content/uploads/2008/02/0003_polevka_tom_kha_gai.thumbnail.jpg" alt="0003_polevka_tom_kha_gai.jpg" align="right" /></a>This is a mild but spicy chicken soup (it can also be made with shrimp, pork, beef or mushrooms), flavored with the very unique flavor of galangal (&#8221;kha&#8221; in Thai) which creates a heavenly taste when combined with hot chile peppers, coconut milk, lime leaves and lemongrass.</p>
<p><strong>Ingredients</strong></p>
<ul>
<li>16 fluid ounces soup broth (chicken stock)</li>
<li>4-5 kaffir lime leaves, shredded</li>
<li>4 or 5 2 inch pieces fresh lemongrass, bruised to release flavor</li>
<li>1 inch cube (or a bit more) galangal sliced thinly.</li>
<li>4 tablespoons fish sauce</li>
<li>2 tablespoons lime juice</li>
<li>4 oz chicken breast cut into smallish bite sized pieces</li>
<li>5 fluid ounces coconut milk</li>
<li>small red Thai chile peppers, slightly crushed (to taste)</li>
<li>coriander (cilantro) leaves to garnish.</li>
</ul>
<p>Note the number of red peppers is a personal choice. It can be as few as half a chilli per diner, to as many as 8-10 per diner, but the dish should retain a balance of flavors and not be overwhelmend by the chili peppers. We suggest about 8-12 chili peppers for this recipe.</p>
<p><strong>Method</strong></p>
<p>Heat the stock, add the lime leaves, lemongrass, galangal, fish sauce, and lime juice. Stir thoroughly, bring to a boil, and add the chicken and coconut milk, then the chile peppers. Bring back to the boil, lower the heat to keep it simmering and cook for about 2 minutes (until the chicken is cooked through). Enjoy!</p>
<p>Not really intended to be eaten as a separate course, we like it served ladled over a bowl of steamed Thai jasmine rice. This quantity serves 4 with other food, but is probably only enough for two if eaten separately.</p>
<p>If you would like to have a decent-tasting tom kha without spending the time to prepare above, we also suggest you try our convenient Tom Ka Paste (click to see description).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/tom-kha-gai/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Links to torrent sites</title>
		<link>http://www.abluestar.com/blog/links-to-torrent-sites/</link>
		<comments>http://www.abluestar.com/blog/links-to-torrent-sites/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 08:56:34 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Neat stuff]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/links-to-torrent-sites/</guid>
		<description><![CDATA[This is a list of torrent sites that I use regularly. Ranked by popularity

http://www.mininova.org/
http://www.youtorrent.com/
http://thepiratebay.org/
http://isohunt.com/

My favorite bit torrent client is http://www.utorrent.com/
]]></description>
			<content:encoded><![CDATA[<p>This is a list of torrent sites that I use regularly. Ranked by popularity</p>
<ul>
<li><a href="http://www.mininova.org/">http://www.mininova.org/</a></li>
<li><a href="http://www.youtorrent.com/">http://www.youtorrent.com/</a></li>
<li><a href="http://thepiratebay.org/">http://thepiratebay.org/</a></li>
<li><a href="http://isohunt.com/">http://isohunt.com/</a></li>
</ul>
<p>My favorite bit torrent client is <a href="http://www.utorrent.com/">http://www.utorrent.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/links-to-torrent-sites/feed/</wfw:commentRss>
		</item>
		<item>
		<title>VS6 SP6</title>
		<link>http://www.abluestar.com/blog/vs6-sp6/</link>
		<comments>http://www.abluestar.com/blog/vs6-sp6/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 19:47:42 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[]]></category>

		<category><![CDATA[programing]]></category>

		<category><![CDATA[vs6]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/vs6-sp6/</guid>
		<description><![CDATA[For the poor SOB that are still using Visual studios 6, I have uploaded a copy of the service pack 6 to my website for reference.
Feel free to download it, you have my sympathy
http://www.abluestar.com/dev/sdk/vcsetup.exe
]]></description>
			<content:encoded><![CDATA[<p>For the poor SOB that are still using Visual studios 6, I have uploaded a copy of the service pack 6 to my website for reference.<br />
Feel free to download it, you have my sympathy</p>
<p><a href="http://www.abluestar.com/dev/sdk/vcsetup.exe">http://www.abluestar.com/dev/sdk/vcsetup.exe</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/vs6-sp6/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter vs Tumblr</title>
		<link>http://www.abluestar.com/blog/twitter-vs-tumblr/</link>
		<comments>http://www.abluestar.com/blog/twitter-vs-tumblr/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 23:07:33 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Neat stuff]]></category>

		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/twitter-vs-tumblr/</guid>
		<description><![CDATA[Introduction
There has been a lot of talk recently about the micro blogging. Micro blogging is a blogging platform that lets you post very small updates about your life, to help keep you and your friends up to date with each others lives. The services are kept very simple so anyone can use them easily.
Two of [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction</strong><br />
There has been a lot of talk recently about the micro blogging. Micro blogging is a blogging platform that lets you post very small updates about your life, to help keep you and your friends up to date with each others lives. The services are kept very simple so anyone can use them easily.</p>
<p>Two of the biggest players in this field are <a href="http://www.twitter.com">Twitter.com</a> and <a href="http://www.tumblr.com">Tumblr.com</a>. I don’t have any friends on any of these services so I decided to try them both out and see what they are like.</p>
<p><strong>Who is more popular</strong><br />
One for the first things I do when evaluating two different online communities is look at the usage statistics. I usually will go with the bigger company, more stable, more secure, etc.  According to compete.com twitter.com seems to have a pretty good lead on tumblr.com.<br />
+1 point for twitter.com<br />
<a href="http://siteanalytics.compete.com/twitter.com+tumblr.com?metric=uv"></a></p>
<p style="text-align: center"><a href="http://siteanalytics.compete.com/twitter.com+tumblr.com?metric=uv"><img src="http://home.compete.com.edgesuite.net/twitter.com+tumblr.com_uv_310.png" /></a></p>
<p><strong>Domains</strong><br />
I like having my own sub domain, personal preference that comes from the old geocities days. tumblr.com provides a sub domain while twitter.com doesn’t.<br />
https://twitter.com/funvill<br />
http://funvill.tumblr.com/<br />
+1 point for tumblr.com</p>
<p><strong>Who owns your data</strong><br />
I am very paranoid about losing my data or a free service that becomes pay and holds my data ransom. These are things that wake me up in the middle of the night in a cold sweat. Lucky both of these sites allow for offsite backups and YOU OWN your own data. They also let you use your own domain just incase your mini blog ever becomes super popular and you want to switch services.<br />
+3 points for twitter.com<br />
+3 points for tumblr.com</p>
<p><strong>Post categories</strong><br />
tumblr.com lets you identify posts under media types such as text, photos, links, chat, audio, video, etc. twitter.com doesn’t let you set a category.<br />
+1 point for tumblr.com</p>
<p><strong>How do I create a new post</strong><br />
Both allow you to post via IM, Email, Phone, Client, API, etc<br />
+5 points each twitter.com, tumblr.com</p>
<p><strong>Themes look and feel</strong><br />
Twitter.com only gives you the very basic theme options, good enough for most people. Tumblr.com other hand gives you full control while keeping it simple enough for the basic user to use.<br />
+2 points for tumblr.com (I really like there theme viewer/editor)</p>
<p><strong>Conclusion</strong><br />
Go with whatever service has more of your friends on it. There both pretty much the same. If you are the first or a trendsetter I would suggest tumblr.com. I personally will not be switching off of Wordpress myself. Wordpress is just too powerful and I can host it on my own servers (+10,000 points) my own paranoia wont let me use any of these services for too long.</p>
<p>9 points for twitter.com<br />
12 points for tumblr.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/twitter-vs-tumblr/feed/</wfw:commentRss>
		</item>
		<item>
		<title>If you build it they will come mentality&#8230;</title>
		<link>http://www.abluestar.com/blog/if-you-build-it-they-will-come-mentality/</link>
		<comments>http://www.abluestar.com/blog/if-you-build-it-they-will-come-mentality/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 21:30:46 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/if-you-build-it-they-will-come-mentality/</guid>
		<description><![CDATA[If you build it they will come. That’s the mentality that most people have when building there first website. That’s just not the way the internet works. You have to advertise, you have to tell people that you exist.
Ask your self how you found the last item you purchased from the internet.
Did you search with [...]]]></description>
			<content:encoded><![CDATA[<p>If you build it they will come. That’s the mentality that most people have when building there first website. That’s just not the way the internet works. You have to advertise, you have to tell people that you exist.</p>
<p>Ask your self how you found the last item you purchased from the internet.<br />
Did you search with Google? What search terms did you use? Did you stumble upon it from someone else’s website? Did you read a review about it and searched Google for it? Put yourself in the mind of your customers, how do you expect them to find you?</p>
<p>The first thing you should do with all new domains is manually add them to the search engines like Google or Yahoo.<br />
<a href="http://www.google.com/addurl/"> http://www.google.com/addurl/</a><br />
<a href="http://search.yahoo.com/info/submit.html"> http://search.yahoo.com/info/submit.html</a><br />
You can pay some money to be included in there index quickly but I never have found it to be worth the money that charge.</p>
<p>The next thing I would consider is setting up a google/yahoo adwords campaign. Depending on your product or service, you could run a successful adwords campaign on as little as $10 a month. It all depends on what keywords you want to use. Selecting the right keywords is an art in its self, there are plenty of book out there that are just dedicated to helping you select good keywords. Ask yourself this question what search words would your customers use to find you?<br />
<a href="http://adwords.google.com/"> http://adwords.google.com/</a><br />
<a href="http://publisher.yahoo.com/"> http://publisher.yahoo.com/</a></p>
<p>Next is to manually get the word out there. This step can be one of the hardest and most time consuming steps. What you need to do is get people talking about your product, get people to link to your website from theirs, get people to promote your service/product for you because they believe in your product.<br />
- Write a review of your product and add it to a consumer reports website<br />
- Ask a blogger or review site to do a review of your product/service<br />
- Find people Forums/blogs/that are talking about your competitors and suggest your own.<br />
- Create links back to yourself anyway you can.<br />
- Be creative,</p>
<p>Search engine optimization (SEO) and advertisement are huge subjects. I only slimed the service in this article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/if-you-build-it-they-will-come-mentality/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Disable and Enable MFC controls by name</title>
		<link>http://www.abluestar.com/blog/disable-and-enable-mfc-controls-by-name/</link>
		<comments>http://www.abluestar.com/blog/disable-and-enable-mfc-controls-by-name/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 19:25:36 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/disable-and-enable-mfc-controls-by-name/</guid>
		<description><![CDATA[I use this snippet all the time to disable/enable, hide/show, move MFC controls.

// Enables and disables an MFC control by name
void CCILikeChease::EnableControl( int iControl, bool enable )
{
// Enable Control
     CWnd* wnd_control = (CWnd*)( GetDlgItem( iControl ) );
      if( wnd_control != NULL ) {
           wnd_control-&#62;EnableWindow( enable ) ;
      }
}
void CNetworkDlg::HideControl( int iControl, [...]]]></description>
			<content:encoded><![CDATA[<p>I use this snippet all the time to disable/enable, hide/show, move MFC controls.</p>
<p><code><br />
// Enables and disables an MFC control by name<br />
void CCILikeChease::EnableControl( int iControl, bool enable )<br />
{<br />
// Enable Control<br />
</code><code>     </code><code>CWnd* wnd_control = (CWnd*)( GetDlgItem( iControl ) );<br />
</code><code>     </code><code> if( wnd_control != NULL ) {<br />
</code><code>     </code><code>     </code><code> wnd_control-&gt;EnableWindow( enable ) ;<br />
</code><code>     </code><code> }<br />
}<br />
void CNetworkDlg::HideControl( int iControl, bool show )<br />
{<br />
</code><code>     </code><code> // Hide the Control<br />
</code><code>     </code><code> CWnd* wnd_control = (CWnd*)( GetDlgItem( iControl ) );<br />
</code><code>     </code><code> if( wnd_control != NULL ) {<br />
</code><code>     </code><code>     </code><code> if(  show ) {<br />
</code><code>     </code><code>     </code><code>     </code><code> wnd_control-&gt;ShowWindow( SW_SHOW ) ;<br />
</code><code>     </code><code>     </code><code> } else {<br />
</code><code>     </code><code>     </code><code>     </code><code> wnd_control-&gt;ShowWindow( SW_HIDE ) ;<br />
</code><code>     </code><code>     </code><code>}<br />
</code><code>     </code><code> }<br />
}<br />
void CNetworkDlg::MoveControl( int iControl, int top, int left, int sizex, int sizey  )<br />
{<br />
</code><code>     </code><code> // Move the control<br />
</code><code>     </code><code> CWnd* wnd_control = (CWnd*)( GetDlgItem( iControl ) );<br />
</code><code>     </code><code> if( wnd_control != NULL ) {<br />
</code><code>     </code><code>     </code><code> LPRECT lpRect = new RECT ;<br />
</code><code>     </code><code>     </code><code> wnd_control-&gt;GetClientRect( lpRect ) ;<br />
</code><code>     </code><code> </code><code>     </code><code>lpRect-&gt;top		= top;<br />
</code><code>     </code><code>     </code><code> lpRect-&gt;left	= left;<br />
</code><code>     </code><code>     </code><code> if( sizex &gt; 0 || sizey &gt; 0 ) {<br />
</code><code>     </code><code>     </code><code>     </code><code> lpRect-&gt;right   = sizex + left ;<br />
</code><code>     </code><code>     </code><code>     </code><code> lpRect-&gt;bottom  = sizey + top;<br />
</code><code>     </code><code>     </code><code> }<br />
</code><code>     </code><code>     </code><code> wnd_control-&gt;MoveWindow( lpRect ) ;<br />
</code><code>     </code><code>     </code><code> delete lpRect ;<br />
</code><code>     </code><code> }<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/disable-and-enable-mfc-controls-by-name/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to access Facebook&#8217;s data</title>
		<link>http://www.abluestar.com/blog/how-to-access-facebooks-data/</link>
		<comments>http://www.abluestar.com/blog/how-to-access-facebooks-data/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 03:47:11 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/how-to-access-facebooks-data/</guid>
		<description><![CDATA[In my last article I talked about how to create a very simple Facebook Application.
We created a simple hello world application that didn&#8217;t do too much besides login to the Facebook API.
In this article we are going to use the Facebook API to access you and your friends information.
We are then going to display the [...]]]></description>
			<content:encoded><![CDATA[<p>In my last article I talked about how to create <a href="http://www.abluestar.com/blog/how-to-make-a-facebook-applcation/">a very simple Facebook Application</a>.<br />
We created a simple hello world application that didn&#8217;t do too much besides login to the Facebook API.</p>
<p>In this article we are going to use the Facebook API to access you and your friends information.<br />
We are then going to display the information a different manner then Facebook.</p>
<p><strong>Requirements </strong></p>
<ul>
<li>A <a href="https://www.facebook.com/r.php">Facebook account</a> with the <a href="http://www.facebook.com/developers/">developers application</a> added</li>
<li>A <a href="http://www.abluestar.com/blog/how-to-make-a-facebook-applcation/">Facebook application </a></li>
<li>A PHP enabled web server with access to the internet.</li>
</ul>
<p>The <a href="http://developers.facebook.com/documentation.php">Facebook API</a> is well documented.<br />
If you want more information on any of the topics that I touch in this article is suggest that you search the Facebook API.</p>
<p>The Facebook API uses a <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST-based interface</a>. This means that Facebook method calls are made over the internet by sending HTTP GET or POST requests to the Facebook REST server.</p>
<p>The Facebook API has about a hundred different methods, in this tourial we will be using;</p>
<ul>
<li><a href="http://wiki.developers.facebook.com/index.php/Friends.get">friends.get</a> - Returns the identifiers of the current user&#8217;s Facebook friends</li>
<li><a href="http://wiki.developers.facebook.com/index.php/Friends.areFriends">friends.areFriends</a> - Returns whether or not each pair of specified users is friends with each other</li>
<li><a href="http://wiki.developers.facebook.com/index.php/Users.getInfo">users.getInfo</a> - Returns a wide array of user-specific information for each user identifier passed, limited by the view of the current user</li>
</ul>
<p>For a full list of all the different Facebook methods see the <a href="http://wiki.developers.facebook.com/index.php/API">Facebook API documentation</a></p>
<p><strong>Basic Application Architecture</strong><br />
First we need to understand how the Facebook API works.</p>
<ol>
<li>A browse makes a request
<ol>
<li>A user browse to the Application canvas page<br />
Example: <a href="http://apps.facebook.com/ninteentwenty/">http://apps.facebook.com/ninteentwenty/</a></li>
<li>acebook looks at the call back URL associated with the application.<br />
Example: <a href="http://www.abluestar.com/dev/facebook/">http://www.abluestar.com/dev/facebook/</a></li>
</ol>
</li>
<li>Facebook sends a request for that call back page with the user&#8217;s ID as a parameter</li>
<li>Our webserver gets the request and builds a page for this user.
<ol>
<li>In the process of building the response page, we can request additional information from Facebook REST server.</li>
</ol>
</li>
<li>After the page has been built on our server its sent to Facebook</li>
<li>Facebook serves our response to the user.</li>
</ol>
<p><img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/call-back.jpg" /></p>
<p>Most of the time the user doesn&#8217;t know that a 3rd party (our server) was involved at all.<br />
The page appears to come from Facebook its self and is embedded in to a page with an iframe.</p>
<p><strong>Make a request using the Facebook API</strong></p>
<p>When starting off a great place to start is the <a href="http://developers.facebook.com/tools.php">API Test Console</a>. It a tool for building requests for the Facebook Rest server.</p>
<p>You can select the method, call back function (most of the time left blank) and respond type (XML, PHP array, JSON).</p>
<p>For example if we where to select the <a href="http://wiki.developers.facebook.com/index.php/Friends.get">friends.get</a>  method and the a response type of XML.<br />
It would query the Facebook server for a list of all the currents users friends and return the results in XML.</p>
<p>$friends = $facebook-&gt;api_client-&gt;friends_get();</p>
<p><img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/friendsget.png" /></p>
<p>We could then take two of these UID (aka user IDs) and test to see if they are friends with the <a href="http://wiki.developers.facebook.com/index.php/Friends.areFriends">friends.areFriends</a> method.<br />
In this case these two people are not friends with each other.</p>
<p>$friends_areFriends = $facebook-&gt;api_client-&gt;friends_areFriends( &#8216;508673161&#8242;, &#8216;504464182&#8242; );</p>
<p><img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/friendsarefriends.png" /></p>
<p>The UID is a great method for uniquely identify members but it would be nice to know who 508673161, and 504464182 are.<br />
To do this we can use the method <a href="http://wiki.developers.facebook.com/index.php/Users.getInfo">users.getInfo</a> to get information about these users including there names.</p>
<p>$users_getInfo = $facebook-&gt;api_client-&gt;users_getInfo( &#8216;732945108&#8242;, &#8220;name&#8221; );</p>
<p><img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/usergetinfo.png" /></p>
<p>The test console is a great tool for testing out how methods work and how the response is formated.</p>
<p>Now we want to put all three of these functions together to create a application that lists all your friends common friend.<br />
<a href="http://www.abluestar.com/blog/wp-content/uploads/2007/11/popfriends.txt">PopFriends.txt</a> demonstrates how to do this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/how-to-access-facebooks-data/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to make a facebook applcation.</title>
		<link>http://www.abluestar.com/blog/how-to-make-a-facebook-applcation/</link>
		<comments>http://www.abluestar.com/blog/how-to-make-a-facebook-applcation/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 01:02:23 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/how-to-make-a-facebook-applcation/</guid>
		<description><![CDATA[We are going to build a simple facebook application to demonstrate how to use the Facebook API.
Requirements:

Basic knowledge of php
A webserver running php5 that is open to the internet.
A facebook account (sign up)

Directions

Add the developers application to your facebook account.
Goto: http://www.facebook.com/developers/ and add the developers application to your account.
After you sugsefuly add the devlopers application [...]]]></description>
			<content:encoded><![CDATA[<p>We are going to build a simple <a href="http://www.facebook.com/">facebook</a> application to demonstrate how to use the Facebook API.</p>
<p><strong>Requirements:</strong></p>
<ul>
<li>Basic knowledge of <a href="http://www.php.net/">php</a></li>
<li>A webserver running php5 that is open to the internet.</li>
<li>A facebook account (<a href="https://www.facebook.com/r.php">sign up</a>)</li>
</ul>
<p><strong>Directions</strong></p>
<ol>
<li>Add the developers application to your facebook account.<br />
Goto: <a href="http://www.facebook.com/developers/">http://www.facebook.com/developers/</a> and add the developers application to your account.<br />
<img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/adddevlopers.png" />After you sugsefuly add the devlopers application you should see the devlopers icon on the left sidebar.<br />
<img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/adddevlopers2.png" /></li>
<li>Create a new application<br />
Goto: <a href="http://www.facebook.com/developers/editapp.php?new">http://www.facebook.com/developers/editapp.php?new</a></p>
<ol>
<li>Application Name: for our app, we put &#8216;Comp1920 Application&#8217;</li>
<li>Check the Terms of service box.</li>
<li>Click on the Optional Fields link - this will bring up more options.</li>
<li>Support E-mail: your Facebook contact email may be filled in automatically, but you might not want to give out your personal email to everyone who adds your app! You do have to put a valid email address that you can check, however.</li>
<li>Callback Url: for our app, we put &#8216;http://www.abluestar.com/dev/facebook/&#8217; - you should put something DIFFERENT - in particular, you should put the url of the directory on your server where you will create your application.</li>
<li>Canvas Page URL: http://apps.facebook.com/: for our app, we put &#8216;comp1920tutorialapp&#8217; - you must put in a different name.</li>
<li>Use Iframe: keep this setting.</li>
<li>Application Type: leave this set to &#8216;Website&#8217;.</li>
<li>Can your application be added to Facebook: set to &#8216;yes&#8217; - this will bring up more options.</li>
<li>TOS URL: you can leave this blank.</li>
<li>Post-Add Url: for our app, we put &#8216;http://apps.facebook.com/comp1920tutorialapp/&#8217; &#8212; you should put something DIFFERENT - in particular, you should put your full canvas page url.</li>
<li>Default FBML: type in the text &#8216;hello&#8217;.</li>
<li>Leave everything else under Installation Options blank.</li>
<li>Side Nav Url: for our app, we put &#8216;http://apps.facebook.com/comp1920tutorialapp/&#8217; &#8212; you should put something DIFFERENT - in particular, you should put your canvas page url here as well.</li>
<li>Leave everything else under Integration Points blank.</li>
</ol>
<p>All the fields are described in detail on the <a href="http://developers.facebook.com/documentation.php">Facebook documentations wiki</a>.</p>
<p><img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/popfriends.png" /></p>
<p>We have created out first Facebook application.<br />
People will be able to add this application to there accounts but it will not do anything just yet.</li>
<li>Download the Facebook php5 API<br />
GoTo: <a href="http://developers.facebook.com/resources.php">http://developers.facebook.com/resources.php</a><br />
Extract it to a folder on your local computer.</li>
<li>Create a basic Facebook Application with the Facebook php5 API
<ol>
<li>Download and edit Step1.php with your faviorite php editor. (I suggest and use <a href="http://notepad-plus.sourceforge.net/uk/site.htm">notepad++</a>)<code></code>// Include the Facebook php API<br />
// The API can be downloaded from facebook&#8217;s website. http://developers.facebook.com/resources.php<br />
require_once &#8216;facebook.php&#8217;;// These are settings that are given to you when you register your applcation.<br />
// ToDo: Change these setting to match the ones found on your<br />
//		 My Applcation page http://www.facebook.com/developers/apps.php<br />
$appapikey = &#8216;[your api_key]&#8217;;<br />
$appsecret = &#8216;[your secret]&#8217;;</p>
<p>// Create an instance of the facebook class.<br />
$facebook = new Facebook($appapikey, $appsecret);</p>
<p>// attempt to log in to facebook<br />
// We will attemp to log in as the current user,<br />
$user = $facebook-&gt;require_login();</p>
<p>// The call back url for all internal links on this page.<br />
$appcallbackurl = &#8216;http://www.abluestar.com/dev/facebook/&#8217;;</p>
<p>// catch the exception that gets thrown if the cookie has an invalid session_key in it<br />
try {<br />
if (!$facebook-&gt;api_client-&gt;users_isAppAdded()) {<br />
$facebook-&gt;redirect($facebook-&gt;get_add_url());<br />
}<br />
} catch (Exception $ex) {<br />
// this will clear cookies for your application and<br />
// redirect them to a login prompt<br />
$facebook-&gt;set_user(null, null);<br />
$facebook-&gt;redirect($appcallbackurl);<br />
die( &#8220;can not load facebook class&#8221; );<br />
}</p>
<p>// Print the users number.<br />
echo &#8220;hello $user&#8221;;</li>
</ol>
</li>
<li>Upload the Facebook API and step1.php to your webserver.</li>
<li>Add the application to your own Facebook account to test it.<br />
Goto your applications Canvas page: <a href="http://apps.facebook.com/comp1920tutorialapp/">http://apps.facebook.com/comp1920tutorialapp/</a><br />
Add your application to your Facebook account.<br />
<img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/addapplcation.png" /></li>
<li>Browse to your applications page<br />
Goto your applications Canvas page: <a href="http://apps.facebook.com/comp1920tutorialapp/">http://apps.facebook.com/comp1920tutorialapp/</a><br />
<img src="http://www.abluestar.com/blog/wp-content/uploads/2007/11/done.png" /></li>
</ol>
<p>You have made your first working Facebook Application.<br />
In the next article we will be adding some functionality to the application to make it useful and describing how it all works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/how-to-make-a-facebook-applcation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coyote catches the road runner</title>
		<link>http://www.abluestar.com/blog/coyote-catches-the-road-runner/</link>
		<comments>http://www.abluestar.com/blog/coyote-catches-the-road-runner/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 03:05:09 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Video]]></category>

		<category><![CDATA[cartoons]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/coyote-catches-the-road-runner/</guid>
		<description><![CDATA[Finely!
]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/KJJW7EF5aVk&#038;rel=0&#038;border=0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/KJJW7EF5aVk&#038;rel=0&#038;border=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Finely!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/coyote-catches-the-road-runner/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to beat 9 grandmasters at once</title>
		<link>http://www.abluestar.com/blog/how-to-beat-9-grandmasters-at-once/</link>
		<comments>http://www.abluestar.com/blog/how-to-beat-9-grandmasters-at-once/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 02:57:50 +0000</pubDate>
		<dc:creator>Steven Smethurst</dc:creator>
		
		<category><![CDATA[Video]]></category>

		<category><![CDATA[Chess]]></category>

		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://www.abluestar.com/blog/how-to-beat-9-grandmasters-at-once/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/evZmpsl3jI0&#038;rel=0&#038;border=0"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/evZmpsl3jI0&#038;rel=0&#038;border=0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.abluestar.com/blog/how-to-beat-9-grandmasters-at-once/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
