<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Spacebug Open Source Initiative &#187; Tips</title>
	<atom:link href="http://spacebug.com/category/tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://spacebug.com</link>
	<description>Keeping Software Simple, Open and Pragmatic.</description>
	<lastBuildDate>Mon, 26 Sep 2011 20:07:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Blog Spam filter – Mollom vs Akismet</title>
		<link>http://spacebug.com/blog-spam-filter-mollom-vs-akismet/</link>
		<comments>http://spacebug.com/blog-spam-filter-mollom-vs-akismet/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 14:31:36 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[blogs]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://spacebug.com/?p=485</guid>
		<description><![CDATA[Spam for bloggers is a big pain, you need to go over 20-80 spam comments to get a single genuine comment. There are, however, applications that automatically filter your comments.  I have used  Mollom and Akismet quite a bit, and in this article will try to explain the differences between them. Both Mollom and Akismet [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Spam for bloggers <a href="http://spacebug.com/save_time_filtering_spam_comments_with_mollom/" target="_self">is a big pain</a>, you need to go over 20-80 spam comments to get a single genuine comment. There are, however, applications that automatically filter your comments.  I have used  <a href="http://mollom.com/" target="_blank">Mollom</a> and <a href="http://akismet.com/" target="_blank">Akismet</a> quite a bit, and in this article will try to explain the differences between them.</p>
<p>Both Mollom and Akismet try to automatically get rid of spam comments, but do it in a slightly different way.</p>
<h2>Akismet</h2>
<p><em>Akismet checks your comments against the Akismet web service to see if  they look like spam or not. </em>If Akismet thinks the comment is a spam it puts it in the spam queue, and you get no notification about it. I found Akismet to be very accurate in finding spam. I found 1 false positive (spam which was not really spam) out of thousands of spam messages.</p>
<p>Major strengths -</p>
<ul>
<li>Well integrated with WordPress look and feel &#8211; provides a seamless experience to the user and blog owner.</li>
<li>Comes as default for WordPress &#8211; This is a very strong advantage, because most <a href="http://spacebug.com/forget-about-software-configuration-settings-and-options%E2%80%93choose-the-right-defaults/" target="_self">people use defaults</a>.</li>
<li>Does not use <a href="http://en.wikipedia.org/wiki/CAPTCHA" target="_blank">CAPTCHA </a>- some real users find CAPTCHA really hard to work with.</li>
</ul>
<p>Major weaknesses -</p>
<ul>
<li>Blog owners still needs to go though the spam queue and find genuine comments and empty the spam queue</li>
</ul>
<h2>Mollom</h2>
<p><em>Mollom is a web service that helps you identify content quality and,  more importantly, helps you stop spam on your blog, social network or  community website. </em>Mollom works very much like Akismet &#8211; the major difference is that if Mollom thinks the comment is spam, it provides the submitter of the comment a CAPTCHA challenge (and only when a possible spam is detected and not always like other CAPTCHA solutions). If the submitter fills in the CAPTCHA correctly, them Mollom sends the comment to the pending queue, no comments ever get to the spam queue.</p>
<p>Major strengths -</p>
<ul>
<li>Near zero spam management, comments never get to your spam queue.</li>
<li>Integrates well with Drupal</li>
<li>Does not use CAPTCHA unless it absolutely needs to (users only see the CAPTCHA if Mollom thinks their comment is spam)</li>
</ul>
<p>Major weaknesses -</p>
<ul>
<li>The current Mollom WordPress plugin does not provide a seamless integration with WordPress theme -  in cases were CAPTCHA is presented to the user, the CAPTCHA is shown in a separate pages that does not look like your blog.<br />
<a href="http://spacebug.com/wp-content/uploads/2010/06/mollom.jpg"><img class="alignnone size-medium wp-image-502" title="mollom" src="http://spacebug.com/wp-content/uploads/2010/06/mollom-300x212.jpg" alt="" width="300" height="212" /></a></li>
</ul>
<p>Both Mollom and Akismet provide an amazing service to bloggers worldwide. The differences between them are subtle but important. For this blog I use Akismet because I want a seamless integration with the theme of the blog, but for an <a href="http://16bytes.com" target="_blank">older blog I am maintaining</a>, I use Mollom because I can&#8217;t be bothered to check its spam queue.</p>
<p>Think about your blog requirement and choose the best filter for you.</p>
<div class="shr-publisher-485"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fblog-spam-filter-mollom-vs-akismet%2F' data-shr_title='Blog+Spam+filter+%E2%80%93+Mollom+vs+Akismet'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fblog-spam-filter-mollom-vs-akismet%2F' data-shr_title='Blog+Spam+filter+%E2%80%93+Mollom+vs+Akismet'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fblog-spam-filter-mollom-vs-akismet%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/blog-spam-filter-mollom-vs-akismet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript Object to String</title>
		<link>http://spacebug.com/javascript-object-to-string/</link>
		<comments>http://spacebug.com/javascript-object-to-string/#comments</comments>
		<pubDate>Wed, 19 May 2010 14:00:34 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[Deep Dive]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://spacebug.com/?p=400</guid>
		<description><![CDATA[Javascript is a little hard to debug, Firebug helps a lot, but sometime you just to need to convert a javascript object into a string. In order to do that (in firefox) you could use the toSource() method. Here is how you do it: // create an object var anyObject = {'someAtt':'someValue', 'otherAtt' : 'otherValue'}; [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Javascript is a little hard to debug, Firebug helps a lot, but sometime you just to need to convert a javascript object into a string.<br />
In order to do that (in firefox) you could use the toSource() method.<br />
Here is how you do it:</p>
<pre>
<code>
// create an object
var anyObject = {'someAtt':'someValue', 'otherAtt' : 'otherValue'};
// get the object to source
var anyObjectToString = anyObject.toSource() ;
// now write the string
document.writeln(anyObjectToString );
</code>
</pre>
<p>Here is the printout of this code in firefox:</p>
<p><script type="text/javascript">
// create an object
var anyObject = {'someAtt':'someValue', 'otherAtt' : 'otherValue'};
// get the object to source
var anyObjectToString = anyObject.toSource() ;
// now write the string
document.writeln(anyObjectToString );
</script></p>
<p>In Internet Explorer and Chrome this will generate a Javascript error &#8211; but this is not for production so using it in Firefox would do fine.</p>
<div class="shr-publisher-400"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fjavascript-object-to-string%2F' data-shr_title='Javascript+Object+to+String'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fjavascript-object-to-string%2F' data-shr_title='Javascript+Object+to+String'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fjavascript-object-to-string%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/javascript-object-to-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP Ajax/JSON calls fail? Try turning debug output off</title>
		<link>http://spacebug.com/cakephp-ajax-json-calls-fail-try-turning-debug-output-off/</link>
		<comments>http://spacebug.com/cakephp-ajax-json-calls-fail-try-turning-debug-output-off/#comments</comments>
		<pubDate>Mon, 17 May 2010 03:34:17 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://spacebug.com/wp/?p=383</guid>
		<description><![CDATA[CakePHP is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications. CakePHP provides several Ajax features, but if cakephp debug is not turned off, most Ajax calls and JSON encoding would fail. The problem / symptoms When calling a server side cakephp method through Ajax calls usualy [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://spacebug.com/sites/default/files/ajax_2.jpg"><img title="ajax" style="border-right: 0px; border-top: 0px; display: inline; margin-left: 0px; border-left: 0px; margin-right: 0px; border-bottom: 0px" height="189" alt="ajax" src="http://spacebug.com/sites/default/files/ajax_thumb.jpg" width="240" align="right" border="0"> CakePHP</a> is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications. CakePHP provides several Ajax features, but if cakephp debug is not turned off, most Ajax calls and JSON encoding would fail.</p>
<h4>The problem / symptoms </h4>
<p>When calling a server side cakephp method through Ajax calls usualy in combination with JSON encoding, the call fails. The server returns HTTP 200 and everything seems fine, but the Ajax call just doesn&#8217;t work.</p>
<p><span id="more-383"></span></p>
<h4>Diagnostic</h4>
<p>By default, cakePHP adds debug information to it’s HTML output. This debug information is very useful, but also very disruptive to Ajax calls and JSON parsing.</p>
<h4>The solution </h4>
<p>Turn debug off by setting it to 0 &#8211; There are two ways you can do that:</p>
<p> 1) For the entire cakephp application – go to core.php under the app/config folder and replace this line “Configure::write(&#8216;debug&#8217;, 2);” with this line “Configure::write(&#8216;debug&#8217;, 0);”</p>
<p> 2) For only a specific method call &#8211; add this line to your relevant method in the controller &#8211; </p>
<p>function yourAjaxCallMethod() {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Configure::write(&#8216;debug&#8217;, 0);
<p>…
<p>}</p>
<div class="shr-publisher-383"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakephp-ajax-json-calls-fail-try-turning-debug-output-off%2F' data-shr_title='CakePHP+Ajax%2FJSON+calls+fail%3F+Try+turning+debug+output+off'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakephp-ajax-json-calls-fail-try-turning-debug-output-off%2F' data-shr_title='CakePHP+Ajax%2FJSON+calls+fail%3F+Try+turning+debug+output+off'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcakephp-ajax-json-calls-fail-try-turning-debug-output-off%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/cakephp-ajax-json-calls-fail-try-turning-debug-output-off/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful JQuery Plugin to Display Errors, Messages, and Alerts: Gritter</title>
		<link>http://spacebug.com/useful-jquery-plugin-to-display-errors-messages-and-alerts-gritter/</link>
		<comments>http://spacebug.com/useful-jquery-plugin-to-display-errors-messages-and-alerts-gritter/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 02:44:55 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Real estate on your web page could be as important as real estate in real life. You got very little space on your client screen and need to use every inch (or pixels).  Errors and messages take up valuable space that could be better used for more important things.
 
That is why <a href="http://boedesign.com/blog/2009/07/11/growl-for-jquery-gritter/">Gritter</a> is a great <a href="http://jquery.com/">JQuery</a> plugin - it saves real estate on your page by showing alerts, messages and errors in a floating bubble way, that is both informative and (because you can configure Gritter to fade away after a few seconds) non intrusive:

<img style="border:0px"  border=0 src="http://spacebug.com/img/gritter.jpg">

This image was taken from one of our new site's design, we decided to use Gritter instead of putting the errors and notification inline.
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Real estate on your web page could be as important as real estate in real life. You got very little space on your client screen and need to use every inch (or pixels).  Errors and messages take up valuable space that could be better used for more important things.</p>
<p>That is why <a href="http://boedesign.com/blog/2009/07/11/growl-for-jquery-gritter/">Gritter</a> is a great <a href="http://jquery.com/">JQuery</a> plugin &#8211; it saves real estate on your page by showing alerts, messages and errors in a floating bubble way, that is both informative and (because you can configure Gritter to fade away after a few seconds) non intrusive:</p>
<p><img style="border: 0px;" src="http://spacebug.com/img/gritter.jpg" border="0" alt="" /></p>
<p>This image was taken from one of our new site&#8217;s design, we decided to use Gritter instead of putting the errors and notification inline.<br />
<!--break--><br />
Check out Gritter&#8217;s <a href="http://boedesign.com/demos/gritter/">demo site</a> and <a href="http://boedesign.com/blog/2009/07/11/growl-for-jquery-gritter/">project site</a> and, for CakePHP developers, here is an <a href="http://duckranger.com/2010/04/use-gritter-for-jquery-growl-for-flash-in-cakephp/">article</a> about integrating Gritter with CakePHP.</p>
<p>It is open source, looks great, easy to integrate, and is very useful!</p>
<div class="shr-publisher-95"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fuseful-jquery-plugin-to-display-errors-messages-and-alerts-gritter%2F' data-shr_title='Useful+JQuery+Plugin+to+Display+Errors%2C+Messages%2C+and+Alerts%3A+Gritter'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fuseful-jquery-plugin-to-display-errors-messages-and-alerts-gritter%2F' data-shr_title='Useful+JQuery+Plugin+to+Display+Errors%2C+Messages%2C+and+Alerts%3A+Gritter'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fuseful-jquery-plugin-to-display-errors-messages-and-alerts-gritter%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/useful-jquery-plugin-to-display-errors-messages-and-alerts-gritter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to: Automatic User Login in CakePHP</title>
		<link>http://spacebug.com/automatic-user-login-in-cakephp/</link>
		<comments>http://spacebug.com/automatic-user-login-in-cakephp/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 19:27:42 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Sometimes you need to enable silent (implicit) login for your users. A good example of this would be this - after a registration process, you would want to automatically login the user, rather then having him retype the user name and password.

In <a href="http://cakephp.org/">CakePHP</a> there is a simple method in the Auth components that lets you login on the user's behave.

Here is how it is done:
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Sometimes you need to enable silent (implicit) login for your users. A good example of this would be this &#8211; after a registration process, you would want to automatically login the user, rather then having him retype the user name and password.</p>
<p>In <a href="http://cakephp.org/">CakePHP</a> there is a simple method in the Auth components that lets you login on the user&#8217;s behave.</p>
<p>Here is how it is done:</p>
<p><code><br />
// assuming $password is the clear text password<br />
$this->data["User"]["password"] = $this->Auth->password($password);<br />
$this->data["User"]["username"] = $username;</p>
<p>// do the login<br />
$login = $this->Auth->login($this->data);</p>
<p>// $login is true is login went well.<br />
// now we can redirect the user to any page:<br />
if($login){<br />
   $this->redirect(array('controller' => "anycontroller",<br />
          'action' => "any_secure_action", null));<br />
}</p>
</pre>
<p>This will be implemented in the next <a href="http://spacebug.com/CakeOTP-One_Time_Password_Reference_Implementation_for_CakePHP">CakeOTP</a> release.</p>
<div class="shr-publisher-92"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fautomatic-user-login-in-cakephp%2F' data-shr_title='How+to%3A+Automatic+User+Login+in+CakePHP'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fautomatic-user-login-in-cakephp%2F' data-shr_title='How+to%3A+Automatic+User+Login+in+CakePHP'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fautomatic-user-login-in-cakephp%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/automatic-user-login-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>6 Useful Things Google Search Provides That Are Not Search / Useful Google Search Tools</title>
		<link>http://spacebug.com/useful_google_search_tools/</link>
		<comments>http://spacebug.com/useful_google_search_tools/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 13:34:17 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Lately it is kind of popular to trash Google. Very much like Microsoft, people love to complain about companies that take an important part of their daily life. Google is now an integral part of our life not only for search but for many other things. A good friend saw me convert foreign exchange on Google search and was very surprised you can do that. So here is a list of things I do in Google search which are not search related. 

<h4>Looking up Whatâ€™s the Time in Other Places Around the World</h4>
Living in a far away island in the pacific with friends in Europe and America, this tool is a great help.
<img style="border:0px" border=0  src="http://spacebug.com/img/google_time.jpg">
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Lately it is kind of popular to trash Google. Very much like Microsoft, people love to complain about companies that take an important part of their daily life. Google is now an integral part of our life not only for search but for many other things. A good friend saw me convert foreign exchange on Google search and was very surprised you can do that. So here is a list of things I do in Google search which are not search related.</p>
<h4>Looking up What&#8217;s the Time in Other Places Around the World</h4>
<p>Living in a far away island in the pacific with friends in Europe and America, this tool is a great help.<br />
<img style="border: 0px;" src="http://spacebug.com/img/google_time.jpg" border="0" alt="" /><br />
<span id="more-89"></span><br />
Here is how you Google search for time in Seattle for example:</p>
<p>Type in Google search &#8220;time in Seattle&#8221;</p>
<p>Here is the direct link to the Google search</p>
<p>http://www.google.co.nz/search?hl=en&#038;q=time+in+Seattle</p>
<p>Here is what you get (at the time of the search):  3:19pm Thursday (PST) &#8211; Time in Seattle, Washington</p>
<p><!--more--></p>
<h4>Make Foreign Exchange Conversion Calculation</h4>
<p>Want to convert from any currency to any other? There is an easy way to do that.<br />
<img style="border: 0px;" src="http://spacebug.com/img/google_money.jpg" border="0" alt="" /><br />
Here is how you use Google search to convert 100 New Zealand Dollars to US Dollars:</p>
<p>Type in Google search &#8220;convert 100 NZD to USD&#8221;</p>
<p>Here is the direct link to the Google search</p>
<p>http://www.google.co.nz/search?hl=en&#038;q=convert+100+NZD+to+USD</p>
<p>Here is what you get (at the time of the search):  100 New Zealand dollars = 69.95 U.S. dollars</p>
<h4>Lookup Word Definition</h4>
<p>In this search Google gathers definitions from different dictionaries.<br />
<img style="border: 0px;" src="http://spacebug.com/img/google_define.jpg" border="0" alt="" /><br />
Here is how you use Google search to define open source:</p>
<p>Type in Google search &#8220;define: open source&#8221;</p>
<p>Here is the direct link to the Google search</p>
<p>http://www.google.co.nz/search?hl=en&#038;q=define%3A+open+source</p>
<p>Here is what you get (at the time of the search):  &#8220;Definitions of open source on the Web:  of or relating to or being computer software for which the source code is freely available&#8230;.&#8221;</p>
<h4>Do Quick Calculations</h4>
<p>I use this when I am on the web and too lazy to use the OS calculator, I just type in the simple calculation in the search bar and there you go.<br />
<img style="border: 0px;" src="http://spacebug.com/img/google_calc.jpg" border="0" alt="" /><br />
Here is how you use Google search to multiply 1574 by 3425:</p>
<p>Type in Google search &#8220;1574 times 3425&#8243;</p>
<p>Here is the direct link to the Google search</p>
<p>http://www.google.co.nz/search?hl=en&#038;q=1574+times+3425</p>
<p>Here is what you get: 1574 times 3425 = 5 390 950</p>
<h4>Spell Checker</h4>
<p>I do this all the time, use Google search to check my spelling on single words. Because Google gives you the closest statistical correctly spelled word, I find it very helpful to combine the word I am looking for with other related words to tell Google what word I am looking for.<br />
<img style="border: 0px;" src="http://spacebug.com/img/google_spell.jpg" border="0" alt="" /></p>
<h4>Get Weather Forecast</h4>
<p>In New Zealand the weather changes every hour.</p>
<p>Here is how you use Google search to find the weather in Wellington NZ:<br />
<img style="border: 0px;" src="http://spacebug.com/img/google_weather.jpg" border="0" alt="" /></p>
<p>Type in Google search &#8220;weather wellington new zealand&#8221;<br />
Here is the direct link to the Google search</p>
<p>http://www.google.com/search?hl=en&#038;q=weather+wellington+new+zealand</p>
<h4>Other Uses</h4>
<p>These are the tools I use most commonly &#8211; for a full list of the tools visit http://www.google.co.nz/intl/en/help/features.html</p>
<div class="shr-publisher-89"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fuseful_google_search_tools%2F' data-shr_title='6+Useful+Things+Google+Search+Provides+That+Are+Not+Search+%2F+Useful+Google+Search+Tools+'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fuseful_google_search_tools%2F' data-shr_title='6+Useful+Things+Google+Search+Provides+That+Are+Not+Search+%2F+Useful+Google+Search+Tools+'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fuseful_google_search_tools%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/useful_google_search_tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I Save Time Filtering Spam Comments with Mollom</title>
		<link>http://spacebug.com/save_time_filtering_spam_comments_with_mollom/</link>
		<comments>http://spacebug.com/save_time_filtering_spam_comments_with_mollom/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 18:30:06 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<img align="right" src="http://spacebug.com/img/spam.jpg">
I get spam comments all the time, it drives me crazy and make me wish I didn't have a web site at all. Spam really bring the evil side of most site owners. 

Yesterday, I finally had enough, I got 300 spam comments and only 4 real ones - I had to go over 3 pages and read bogus comments like:
 
"I have a question [link to gambling site]"
 
or "nice post [link to viagra]" 

and the ho-so-known "dgsdgsdghsdfhdf [link to a SEO company]".

I went to <a href="http://drupal.org/">drupal</a> and looked for the most popular anti-spam module they listed and found <a href="http://mollom.com/">Mollom</a>.

Mollom is a web service that helps you identify content quality and, more importantly, helps you stop spam on your blog, social network or community website. When site moderation becomes easier, you have more time and energy to interact with your community.
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img src="http://spacebug.com/img/spam.jpg" alt="" align="right" /><br />
I get spam comments all the time, it drives me crazy and make me wish I didn&#8217;t have a web site at all. Spam really bring the evil side of most site owners.</p>
<p>Yesterday, I finally had enough, I got 300 spam comments and only 4 real ones &#8211; I had to go over 3 pages and read bogus comments like:</p>
<ul>
<li>&#8220;I have a question [link to gambling site]&#8220;</li>
<li>or &#8220;nice post [link to viagra]&#8220;</li>
<li>and the ho-so-known &#8220;dgsdgsdghsdfhdf [link to a SEO company]&#8220;.</li>
</ul>
<p>I went to <a href="http://drupal.org/">drupal</a> and looked for the most popular anti-spam module they listed and found <a href="http://mollom.com/">Mollom</a>.</p>
<p>Mollom is a web service that helps you identify content quality and, more importantly, helps you stop spam on your blog, social network or community website. When site moderation becomes easier, you have more time and energy to interact with your community.<br />
<!--break--><span id="more-78"></span><br />
Mollom is actually developed and maintain by the guys developing drupal, the module is not open source but has a free version (<a href="http://spacebug.com/software_as_a%20service_takes_the_free_beer_out_of_open_source">and that is what most people love in open source anyway</a>).</p>
<p>To make the long story short, I am a happier, more productive and a better person altogether. After using Mollom for over the last 24 hours (and 185 spam comments filtered by Mollon) I highly recommend it as a spam fillers.</p>
<div class="shr-publisher-78"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fsave_time_filtering_spam_comments_with_mollom%2F' data-shr_title='How+I+Save+Time+Filtering+Spam+Comments+with+Mollom'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fsave_time_filtering_spam_comments_with_mollom%2F' data-shr_title='How+I+Save+Time+Filtering+Spam+Comments+with+Mollom'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fsave_time_filtering_spam_comments_with_mollom%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/save_time_filtering_spam_comments_with_mollom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to check where your site visitors come from using javascript</title>
		<link>http://spacebug.com/check_where_my_site_visitors_have_come_from_using_javascript/</link>
		<comments>http://spacebug.com/check_where_my_site_visitors_have_come_from_using_javascript/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 00:35:48 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[Deep Dive]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Where do my visitors come from? That is always a question bloggers, site owners and advertisers want to know. Knowing who has referred the visitor to my site tells you a lot about that visitor. This information might help you drive better, more finely tuned content to this user.



<h2>Demo</h2>
<div style="border:solid thin black;">
<script type="text/javascript">
        if(document.referrer){
           document.write("<h3>Hello, Thank you for arriving from: " + document.referrer+"</h3>");
         }else{
          document.write("<h3>Hello, Thank you for arriving directly to this page</h3>");
}

    </script>

</div>
<br />
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Where do my visitors come from? That is always a question bloggers, site owners and advertisers want to know. Knowing who has referred the visitor to my site tells you a lot about that visitor. This information might help you drive better, more finely tuned content to this user.</p>
<h2>Demo</h2>
<div style="border:solid thin black;">
<script type="text/javascript">    if(document.referrer){
           document.write("Hello, Thank you for arriving from: " + document.referrer);
         }else{
          document.write("Hello, Thank you for arriving directly to this page");
} </script></p>
</div>
<p></p>
<h2>Code</h2>
<div style="border: solid thin gray; padding:15px;">
<pre>
<code>
&lt;script type="text/javascript">
        if(document.referrer){
           document.write("Hello, Thank you for arriving from: "
                                                   + document.referrer);
         }else{
           document.write("Hello,
                  Thank you for arriving directly to this page");
}
    &lt;/script>
</code>
</pre>
</div>
<p>This topic is covered in detailed in <a href="http://www.duckranger.com/2009/05/where-do-my-site-visitors-arrive-from/">this interesting article</a>.<br /></p>
<div class="shr-publisher-69"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcheck_where_my_site_visitors_have_come_from_using_javascript%2F' data-shr_title='How+to+check+where+your+site+visitors+come+from+using+javascript+'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcheck_where_my_site_visitors_have_come_from_using_javascript%2F' data-shr_title='How+to+check+where+your+site+visitors+come+from+using+javascript+'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fcheck_where_my_site_visitors_have_come_from_using_javascript%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/check_where_my_site_visitors_have_come_from_using_javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Most Useful / Best Drupal Modules</title>
		<link>http://spacebug.com/most_useful_best_drupal_modules/</link>
		<comments>http://spacebug.com/most_useful_best_drupal_modules/#comments</comments>
		<pubDate>Tue, 26 May 2009 23:00:39 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<img src="http://spacebug.com/img/drupalogo.png" align="right">I have recently upgraded my <a href="http://catsidol.com">cats idol</a> site to <a href="http://www.drupal.org">Drupal</a> 6 and enhanced its functionality. I have also created several other sites (including this site) using the following set of useful Drupal modules. <br /><br />
Here is my list of useful (AKA Best IMHO) Drupal modules:
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img src="http://spacebug.com/img/drupalogo.png" alt="" align="right" />I have recently upgraded my <a href="http://catsidol.com">cats idol</a> site to <a href="http://www.drupal.org">Drupal</a> 6 and enhanced its functionality. I have also created several other sites (including this site) using the following set of useful Drupal modules.</p>
<p>Here is my list of useful (AKA Best IMHO) Drupal modules:<br />
<span id="more-62"></span></p>
<h3><a href="http://drupal.org/project/cck" target="_new">Content Construction Kit (CCK)</a></h3>
<p>The Content Construction Kit allows you to add custom fields to nodes using a web browser. It is really useful if you want to create custom content types and added functionality to your existing content types.</p>
<p>Example of such fields would be:</p>
<ul>
<li>computed field: lets you add a PHP-driven &#8220;computed field&#8221; to CCK node types</li>
<li>date: creates an ISO or unix timestamp date field</li>
<li>image field: an image field</li>
<li>link: a URL field</li>
</ul>
<p>I used the image, link and File fields and found them useful.</p>
<h3><a href="http://drupal.org/project/views" target="_new">Views 2 </a></h3>
<p>The Views module provides a flexible method for Drupal site designers to control how lists and tables of content are presented. Traditionally, Drupal has hard-coded most of this, particularly in how taxonomy and tracker lists are formatted.</p>
<p>This tool is essentially a smart query builder that, given enough information, can build the proper query, execute it, and display the results. It has four modes, plus a special mode, and provides an impressive amount of functionality from these modes.</p>
<p>Among other things, Views can be used to generate reports, create summaries, and display collections of images and other content.</p>
<p>Views are very useful in combination with the Panels module. Also works well with blocks, I use it to create the left and right blocks in Cats Idol</p>
<h3><a href="http://drupal.org/project/panels" target="_new">Panels</a></h3>
<p>The Panels module allows a site administrator to create customized layouts for multiple uses. At its core it is a drag and drop content manager that lets you visually design a layout and place content within that layout.</p>
<p>Integration with other systems allows you to create nodes that use this, landing pages that use this, and even override system pages such as taxonomy and the node page so that you can customize the layout of your site with very fine grained permissions.</p>
<p>I use it to create Cats Idol cool front page.</p>
<h3><a href="http://drupal.org/project/pathauto" target="_new"> Pathauto</a></h3>
<p>Provides a mechanism for modules to automatically generate aliases for the content they manage. Very important for Search Engine Optimization (SEO) this module automagically generates proper URLs for your content, helping search engines and users find your content more easily.</p>
<h3><a href="http://drupal.org/project/votingapi" target="_new">Voting API</a> and <a href="http://drupal.org/project/fivestar" target="_new">FiveStar </a></h3>
<p>VotingAPI helps developers who want to use a standardized API and schema for storing, retrieving, and tabulating votes for Drupal content. The Five Star voting module adds a clean, attractive voting widget to nodes.</p>
<p>Very useful if you want to provide voting functionality and also sort and view content according to popularity.</p>
<h3><a href="http://drupal.org/project/sharethis" target="_new">AddThis</a> or <a href="http://drupal.org/project/addthis" target="_new">ShareThis</a></h3>
<p>These are two social network linking modules allowing user to link to content on your site in social networks such as facebook or twitter. At the time this article is written this is a â€œmust haveâ€ for every site.</p>
<p>I user ShareThis in Spacebug and AddThis in Cats Idol.</p>
<h3><a href="http://drupal.org/project/image" target="_new">Image module</a></h3>
<p>Usefull if you want to have an out-of-the-box image content types allowing user/yourself to add image base nodes. Integrates with views, voting, blocks and CCK.</p>
<h3><a href="http://drupal.org/project/tagadelic" target="_new">Tagadelic </a></h3>
<p>Tagadelic creates a tag cloud for your site taxonomy.</p>
<h3><a href="http://drupal.org/project/google_cse" target="_new">Google CSE</a></h3>
<p>Google CSE replaces the default Drupal search with Google search, Requires Google account.</p>
<h3><a href="http://drupal.org/project/google_cse" target="_new">Token actions</a></h3>
<p>I use this module to provide the functionality of sending notifications to my administrator email about new comments and content added to my sites</p>
<p>I hope you find this list useful. Let me know if I missed anything.</p>
<div class="shr-publisher-62"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fmost_useful_best_drupal_modules%2F' data-shr_title='Most+Useful+%2F+Best+Drupal+Modules'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fmost_useful_best_drupal_modules%2F' data-shr_title='Most+Useful+%2F+Best+Drupal+Modules'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fmost_useful_best_drupal_modules%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/most_useful_best_drupal_modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Crashes on Windows &#8211; Check Your Ports</title>
		<link>http://spacebug.com/apache_crashes_on_windows%e2%80%93check_your_ports/</link>
		<comments>http://spacebug.com/apache_crashes_on_windows%e2%80%93check_your_ports/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:20:01 +0000</pubDate>
		<dc:creator>Amir Shevat</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<img src="http://farm1.static.flickr.com/36/82522931_38a5a71869_m.jpg" align="right">Apache is one of the most popular web servers in the market today. It usually runs on Linux-based machines but lately there are more and more deployments, for development as well as other reasons, of Apache on Windows. Nowadays, running Apache web server on Windows is very common for PHP developers. Many developers develop their PHP application on their home windows or Mac and deploy to a remote Linux server.
]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img src="http://farm1.static.flickr.com/36/82522931_38a5a71869_m.jpg" alt="" align="right" />Apache is one of the most popular web servers in the market today. It usually runs on Linux-based machines but lately there are more and more deployments, for development as well as other reasons, of Apache on Windows. Nowadays, running Apache web server on Windows is very common for PHP developers. Many developers develop their PHP application on their home windows or Mac and deploy to a remote Linux server.<br />
<span id="more-61"></span></p>
<h3>The problem</h3>
<p>I often find that Apache has a higher probability to crash (right at startup) in home windows than it has on Linux servers. It happens to me several times a week and also to a lot of my friends.<br />
If you check the logs of the apache you find that 9 times out of 10 you get very little out of it, the Apache does not leave any log when it crashes on initialization.</p>
<p>The root of the problem is that your dev windows is usually also your personal desktop â€“ with lots of applications, such as Instant Messengers and email clients,  that connect to the internet on a regular basis.</p>
<h3>The solution</h3>
<p>Well, 9 times out of 10 the problem is that the Apache cannot listen/bind to the required port (port 80 or 8080) on the machine, and as a result the Apache crashes. It is what you would call in technical terms a Binding Exception.<br />
Closing the application that has already bound to that port is the best way to solve this issue. I do it all the time with Skype &#8211; I tend to close my Skype when I startup my Apache and then re-run my Skype and let it find another port to work on.<br />
Another solution would be to change the port of the Apache, but it is more complex and mandates that you alter your URLs, so just stopping the application that â€œstole the Apache&#8217;s portâ€ is the best course of action.</p>
<p><sub><a href="http://www.flickr.com/photos/oxborrow/82522931/sizes/s/">1 </a></sub><br />
<script type="text/javascript">// <![CDATA[
google_ad_client = "pub-3972265193457277";
/* 300x250, created 2/7/09 spacebug body banner */
google_ad_slot = "4930875798";
google_ad_width = 300;
google_ad_height = 250;</p>
<p>// ]]&gt;</script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></p>
<div class="shr-publisher-61"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fspacebug.com%2Fapache_crashes_on_windows%25e2%2580%2593check_your_ports%2F' data-shr_title='Apache+Crashes+on+Windows+-+Check+Your+Ports'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fspacebug.com%2Fapache_crashes_on_windows%25e2%2580%2593check_your_ports%2F' data-shr_title='Apache+Crashes+on+Windows+-+Check+Your+Ports'></a><a class='shareaholic-fbsend' data-shr_href='http%3A%2F%2Fspacebug.com%2Fapache_crashes_on_windows%25e2%2580%2593check_your_ports%2F'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://spacebug.com/apache_crashes_on_windows%e2%80%93check_your_ports/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

