<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Derilicious» Derilicious by Derick Ng</title>
	
	<link>http://derickng.com</link>
	<description>A blog on web development technicalities by Derick Ng</description>
	<lastBuildDate>Fri, 26 Jun 2009 16:15:11 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Derilicious" type="application/rss+xml" /><item>
		<title>Trendly: Trends for Google Analytics</title>
		<link>http://derickng.com/posts/144-trendly-trends-for-google-analytics</link>
		<comments>http://derickng.com/posts/144-trendly-trends-for-google-analytics#comments</comments>
		<pubDate>Fri, 26 Jun 2009 16:13:27 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Trendly]]></category>
		<category><![CDATA[Web Analytics]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=144</guid>
		<description><![CDATA[Don&#8217;t you just love APIs? Unless you were never a fan of Google Analytics, you would have heard of the Google Analytics Data Export API. It allows developers to make good use of the data collected in a Google Analytics account by churning better reports, integrating information into an existing application or whatever creative ways [...]]]></description>
			<content:encoded><![CDATA[<p>Don&#8217;t you just love APIs? Unless you were never a fan of Google Analytics, you would have heard of the <a href="http://code.google.com/apis/analytics/docs/gdata/gdataDeveloperGuide.html">Google Analytics Data Export API</a>. It allows developers to make good use of the data collected in a Google Analytics account by churning better reports, integrating information into an existing application or whatever creative ways you can think of. This is exactly what the guys at Smallthought Systems, makers of <a href="http://dabbledb.com/">DabbleDB</a> (which I recommend you check out as well), did by coming up with <a href="http://trendly.com/">Trendly</a>.</p>
<p>I wanted to post a full review but since Trendly did a good job of explaining <a href="http://trendly.com/about/">how it works</a>, I got lazy. The idea is simple. Google Analytics shows you how many visits each traffic source generates but it will probably take more than a few clicks to understand exactly which source brings you the most traffic last month and even harder to understand how this same source trends compared to other sources over the last couple of months. Trendly does exactly that in 4 clicks:</p>
<ol>
<li>Click to try Trendly for free.</li>
<li>Allow Trendly to access your Google Account.</li>
<li>Choose the profile you would like analysed.</li>
<li>Wait for email notification to Trendly results and click on the link provided.</li>
</ol>
<p>Trendly is still in preview phase so do go ahead and try for free while you can! On a side note, <a href="http://www.juiceanalytics.com/writing/enhanced-google-analytics-firefox-plugin/">Enhanced Google Analytics Firefox extension</a> does something similar on a smaller scale.</p>
<p>Any more interesting projects making use of the Google Analytics Data Export API that I should know of?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=pxjI50l_Iyw:HXPrD1Vu-08:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=pxjI50l_Iyw:HXPrD1Vu-08:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=pxjI50l_Iyw:HXPrD1Vu-08:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=pxjI50l_Iyw:HXPrD1Vu-08:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=pxjI50l_Iyw:HXPrD1Vu-08:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/pxjI50l_Iyw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/144-trendly-trends-for-google-analytics/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone OS 3.0 Bug with Group MMS (or rather SMS)</title>
		<link>http://derickng.com/posts/138-iphone-os-3-0-bug-with-group-mms-or-rather-sms</link>
		<comments>http://derickng.com/posts/138-iphone-os-3-0-bug-with-group-mms-or-rather-sms#comments</comments>
		<pubDate>Fri, 19 Jun 2009 03:46:05 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=138</guid>
		<description><![CDATA[Bug bug! Contrary to the 12 bugs in iPhone OS 3.0 that Woot found, I only encountered 1 not in the list. I just sent 5 MMSes instead of SMSes yesterday without noticing that the iPhone shows Group MMS instead of Group SMS whenever you add more than one recipient to the list.

This has been [...]]]></description>
			<content:encoded><![CDATA[<p>Bug bug! Contrary to the <a href="http://www.woot.com/Blog/ViewEntry.aspx?Id=8475">12 bugs in iPhone OS 3.0</a> that Woot found, I only encountered 1 not in the list. I just sent 5 MMSes instead of SMSes yesterday without noticing that the iPhone shows <em>Group MMS</em> instead of <em>Group SMS</em> whenever you add more than one recipient to the list.</p>
<p><img class="alignnone size-full wp-image-139" title="iPhone OS 3.0 Group MMS Bug" src="http://derickng.com/wordpress/wp-content/uploads/2009/06/iphone-os-3.0-bug-group-mms.png" alt="iPhone OS 3.0 Group MMS Bug" width="320" height="480" /></p>
<p>This has been confirmed by <a href="http://forums.whirlpool.net.au/forum-replies.cfm?t=1223400">other</a> <a href="http://discussions.apple.com/thread.jspa?threadID=2046805&amp;tstart=0">users</a> as well so it can very well be an actual bug. Now the only solution will be to switch <em>MMS Messaging</em> to <em>Off</em> whenever you want to send a group SMS. More bugs?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=zXIKqNrgiNw:XEeA6BO5A98:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=zXIKqNrgiNw:XEeA6BO5A98:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=zXIKqNrgiNw:XEeA6BO5A98:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=zXIKqNrgiNw:XEeA6BO5A98:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=zXIKqNrgiNw:XEeA6BO5A98:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/zXIKqNrgiNw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/138-iphone-os-3-0-bug-with-group-mms-or-rather-sms/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>How-to: iPhone Tethering via Bluetooth on a Mac</title>
		<link>http://derickng.com/posts/131-how-to-iphone-tethering-via-bluetooth-on-a-mac</link>
		<comments>http://derickng.com/posts/131-how-to-iphone-tethering-via-bluetooth-on-a-mac#comments</comments>
		<pubDate>Thu, 18 Jun 2009 16:46:18 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Tethering]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=131</guid>
		<description><![CDATA[Alright. Everyone is excited with the just released iPhone OS 3.0 and so am I! To be honest, I have never used Bluetooth on a Mac before and the way to setup tethering just feels a little different from what I expected. No, I did not try tethering via USB since I very much prefer [...]]]></description>
			<content:encoded><![CDATA[<p>Alright. Everyone is excited with the just released iPhone OS 3.0 and so am I! To be honest, I have never used Bluetooth on a Mac before and the way to setup tethering just feels a little different from what I expected. No, I did not try tethering via USB since I very much prefer wireless. The steps below should work for anyone whose mobile service provider (I am on <a title="SingTel" href="http://www.singtel.com">SingTel</a> by the way) does not explicitly disable tethering.</p>
<ol>
<li>Ensure that the settings <em>Internet Tethering</em> and <em>Bluetooth</em> is set to <em>On</em> on your iPhone.</li>
<li>Click on the Bluetooth icon on the menu bar (the top right corner of your screen with lots of icons).</li>
<li>Choose <em>Set up Bluetooth Device</em>.</li>
<li>Click <em>Continue</em> then <em>Mobile phone</em> and <em>Continue</em> again.</li>
<li>Ensure that you are on the Bluetooth settings page on your iPhone. You should see your iPhone listed under the list of Mobile Phones then click <em>Continue</em> and <em>Continue</em> (notice the number of Continues?) again.</li>
<li>The Bluetooth Setup Assistant on your Mac should now be showing the PIN required to pair up the iPhone so just enter the PIN as shown into your iPhone and &#8220;touch&#8221; <em>Connect</em>.</li>
<li>Now, your Mac and iPhone are finally paired. Ensure that <em>Use device as a network port</em> is checked and click <em>Continue</em>.</li>
<li>Congratulations and we are done with the set up!</li>
</ol>
<p>Every time you wish to connect to the Internet via your iPhone, click on the Bluetooth icon on the menu bar again and choose <em>Your iPhone &gt; </em><em>Connect to Network</em>. Once connected, you should see a nice blue Internet Tethering banner pulsating on your iPhone. Have fun!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=WcMqnnPvxZY:Olv7LkxKDIE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=WcMqnnPvxZY:Olv7LkxKDIE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=WcMqnnPvxZY:Olv7LkxKDIE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=WcMqnnPvxZY:Olv7LkxKDIE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=WcMqnnPvxZY:Olv7LkxKDIE:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/WcMqnnPvxZY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/131-how-to-iphone-tethering-via-bluetooth-on-a-mac/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Upgraded to WordPress 2.8</title>
		<link>http://derickng.com/posts/127-upgraded-to-wordpress-2-8</link>
		<comments>http://derickng.com/posts/127-upgraded-to-wordpress-2-8#comments</comments>
		<pubDate>Sun, 14 Jun 2009 14:58:39 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=127</guid>
		<description><![CDATA[Cool, WordPress upgraded from 2.7.1 to 2.8 in seconds! Can&#8217;t wait for Drupal to follow suit with automatically upgrading (OK, one-click upgrade) of modules and core. Definitely not easy to keep Planet CakePHP updated since it is quite a chore to download updated module, disable current module, unzip and override,  re-enable module, run update.php and [...]]]></description>
			<content:encoded><![CDATA[<p>Cool, WordPress upgraded from 2.7.1 to 2.8 in seconds! Can&#8217;t wait for Drupal to follow suit with automatically upgrading (OK, one-click upgrade) of modules and core. Definitely not easy to keep <a title="CakePHP-related articles, blog posts and news" href="http://planetcakephp.org">Planet CakePHP</a> updated since it is quite a chore to download updated module, disable current module, unzip and override,  re-enable module, run update.php and finally done. Worst when you need to upgrade Drupal core. One thing however, that I liked in Drupal, would be the maintenance mode which is absolutely useful from keeping visitors away while the things get upgraded or screwed up. :p</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=y_nH0_8vhCI:PR-rW_YA-vA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=y_nH0_8vhCI:PR-rW_YA-vA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=y_nH0_8vhCI:PR-rW_YA-vA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=y_nH0_8vhCI:PR-rW_YA-vA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=y_nH0_8vhCI:PR-rW_YA-vA:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/y_nH0_8vhCI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/127-upgraded-to-wordpress-2-8/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Account Hijacked or Just a Bug?</title>
		<link>http://derickng.com/posts/103-google-account-hijacked-or-just-a-bug</link>
		<comments>http://derickng.com/posts/103-google-account-hijacked-or-just-a-bug#comments</comments>
		<pubDate>Sun, 03 May 2009 06:30:11 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=103</guid>
		<description><![CDATA[Google thinks I am another user again! I first encountered this while I was on the Google Analytics page where I got logged in as another user and was able to browse his/her reports. This is the second time I am encountering this and it happened while I was doing a search for &#8220;changmorgan@gmail.com&#8220;.
It seems [...]]]></description>
			<content:encoded><![CDATA[<p>Google thinks I am another user again! I first encountered this while I was on the Google Analytics page where I got logged in as another user and was able to browse his/her reports. This is the second time I am encountering this and it happened while I was doing a search for &#8220;<a href="http://www.google.com/search?q=changmorgan%40gmail.com">changmorgan@gmail.com</a>&#8220;.</p>
<a href="http://derickng.com/posts/103-google-account-hijacked-or-just-a-bug"><p><em>Click here to view the embedded video.</em></p></a>
<p>It seems like I am not the only one having the problem as you can see from the thread &#8220;<a href="http://bit.ly/ufM33">HIjacked Account: Do something about it !!!</a>&#8221; in the Google AdWords Help forum. I am linking to the cached version because the <a href="http://bit.ly/16LcEy">original thread</a> seems to have been removed. Is Google trying to hide anything? I hope not.</p>
<p>This is definitely a serious issue which I hope Google will contact affected users regarding. Imagine someone peaking into your emails, calendars, documents and every other services which your Google Account (thanks to <a href="http://openid.net/">OpenID</a>) can be used for. Anyone else encountering issues with your Google Account?</p>
<p><strong>UPDATE:</strong> Now I have gotten two threads posted at Google Help which I did not post! One is by a user <a href="http://bit.ly/COwpm">who can&#8217;t delete his/her album from Picasa Web Albums</a>. This is definitely because he/she was &#8220;taking over&#8221; my session and I do not have permission to do so! The other is about <a href="http://bit.ly/vFz1Y">Checkout Merchant</a> which I totally have not used before.</p>
<p><strong>UPDATE 2</strong>: I have got more threads posted under my account on <a href="http://bit.ly/KS8Td">Google Earth</a> and <a href="http://bit.ly/14foFP">Google Chrome</a> help forums! I have also gotten more news from users whom experience the same issues and they all seemed to be from Singapore as well. Is this a Singapore-only issue?</p>
<p>From <span class="hb"><span class="g2">Priyan:</span></span></p>
<blockquote><p>Dear Derick,</p>
<p>Just wanted to inform that when i opened <a href="http://google.com/notebook" target="_blank">google.com/notebook</a>, instead of seeing my notes, it showed your account (See attached), like the way you see it. If you carefully read the below thread, this security issue is not just to google notebooks, but also google profile, google contacts and google help (So far).</p>
<p>Guyz, The danger has come and i am gonna delete all of my google account except the email (for which i need few months).</p>
<p>I posted the issues at <a href="mailto:security@google.com" target="_blank">security@google.com</a>, which went unanswered. Google was a god given gift for me, but they are not caring about security issues.</p>
<p>Somebody here if you can help, it would be grateful.</p>
<p>Priyan</p></blockquote>
<p>From Max:</p>
<blockquote><p>Hi everyone,</p>
<p>Are we all based in Singapore? It could be the login server? Or is the application server the one that is getting confused?</p>
<p>I think they did mention something about the 2 accounts being different, either that in the process of being linked.</p>
<p>Under my GMAIL profile, I had Aussie Pete in my display name.</p>
<p>Cheers!<br />
Max</p></blockquote>
<p>From Peter:</p>
<blockquote><p>Hi &#8211; yes it was very strange when I posted my question on google help&#8230;<br />
because there was no profile created, I went in and edited it, thinking that<br />
it was my profile (didn&#8217;t notice the email address at the top of the page<br />
was showing Max&#8217;s address and not mine).</p>
<p>Once I noticed, I went back and logged in as myself with my email address<br />
and created my own profile.</p>
<p>At the time, I though perhaps google was somehow defaulting to a &#8216;pretend&#8217;<br />
person until my own profile was created&#8230; obviously this mustn&#8217;t be the<br />
case.</p>
<p>Thanks for looping me in &#8211; very strange occurrence indeed. I also use<br />
googleapps for many things&#8230; including more than just this one domain.</p></blockquote>
<p><strong>UPDATE 3:</strong> This is getting ridiculous, I am getting more users getting logged on as me on Google each day. More threads posted by not-me on <a href="http://bit.ly/eyEaG">AdSense</a> and <a href="http://bit.ly/M9LTn">Webmaster</a> help forums. There also seem to be <a href="http://www.google.com/support/forum/p/AdSense/thread?tid=2f75e525b7446bf4&amp;hl=en">more users experiencing the same issues</a> apart from the original group that emailed me. It also seems more likely that this is really an issue affecting Singapore users only. I further suspect that this affects SingNet users only due to the invisible proxy SingNet places over your HTTP traffic which makes you take on a different public IP each time. If you are experiencing the same issues, please drop a comment stating the country you are from and your ISP. Anyone reading this thread, please help to spread the news to your friends who has a way to get to someone from Google! Thanks!</p>
<p><strong>UPDATE 4:</strong> Seems like it is really an issue with SingNet. Priyan has an update over at <a href="http://priyadarsan.blogspot.com/2009/05/google-providing-access-to-other-user.html">his blog</a> that Google has responded and fixed the issue.</p>
<blockquote><p>Hi Priyan,</p>
<p>The issue you&#8217;re describing was reported by a small number of users<br />
visiting a Google Help Center page from your ISP. As you described, those<br />
users could become partially logged into the account of a recent viewer of<br />
the same page from the same ISP. We have fixed the issue completely, and<br />
we apologize for any inconvenience.</p>
<p>Thanks very much for reporting it to us.</p>
<p>Regards,<br />
Manuel for<br />
The Google Security Team</p></blockquote>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=ZCZ6ynSunJU:isuLig-Ck74:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=ZCZ6ynSunJU:isuLig-Ck74:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=ZCZ6ynSunJU:isuLig-Ck74:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=ZCZ6ynSunJU:isuLig-Ck74:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=ZCZ6ynSunJU:isuLig-Ck74:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/ZCZ6ynSunJU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/103-google-account-hijacked-or-just-a-bug/feed</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Tracking Country Specific Google Search Engines in Google Analytics using Filters</title>
		<link>http://derickng.com/posts/89-tracking-country-specific-google-search-engines-in-google-analytics-using-filters</link>
		<comments>http://derickng.com/posts/89-tracking-country-specific-google-search-engines-in-google-analytics-using-filters#comments</comments>
		<pubDate>Wed, 22 Apr 2009 06:40:35 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=89</guid>
		<description><![CDATA[Tracking additional search engines (see 1, 2 and 3) in Google Analytics is hardly a new thing. The usual method of adding additional search engines to be tracked would be to use the _addOrganic() function of the tracking code. While that works perfectly, I would like to propose a different way of achieving the same [...]]]></description>
			<content:encoded><![CDATA[<p>Tracking additional search engines (see <a href="http://www.antezeta.com/blog/google-analytics-search-engines">1</a>, <a href="http://www.seo-hongkong.com/blog/how-to-add-organic-search-engines-in-google-analytics-759.html">2</a> and <a href="http://www.advanced-web-metrics.com/blog/2008/09/14/customising-the-list-of-search-engines-in-google-analytics/">3</a>) in Google Analytics is hardly a new thing. The usual method of adding additional search engines to be tracked would be to use the <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiSearchEngines.html#_gat.GA_Tracker_._addOrganic">_addOrganic()</a> function of the tracking code. While that works perfectly, I would like to propose a different way of achieving the same results using filters in Google Analytics.</p>
<p>The advantages of using filters:</p>
<ul>
<li>You can (and you should) create an additional profile with the same tracking ID to track country specific search engines while leaving the original profile for an overview. Calling <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiSearchEngines.html#_gat.GA_Tracker_._addOrganic">_addOrganic()</a> will modify all the profiles with the same tracking ID.</li>
<li>Visitors to your website do not have to load a long list of JavaScript code containing all the additional search engines you want to track therefore reducing some  (minimal) load time.</li>
<li>There should be no changes required even if Google deploys another search engine at www.google.new.tld. If you call <a href="http://code.google.com/apis/analytics/docs/gaJS/gaJSApiSearchEngines.html#_gat.GA_Tracker_._addOrganic">_addOrganic()</a> with a static list of search engine names, you will have to add and update your list of search engines to track.</li>
</ul>
<p>This is an example of the steps required to track additional Google search engines using a single filter:</p>
<ul>
<li>Create an additional profile with the same tracking ID.</li>
<li>Add a new filter with filter type as &#8220;Custom Filter&#8221; and choose &#8220;<strong>Advanced</strong>&#8220;.</li>
<li>Select &#8220;Campaign Source&#8221; under &#8220;Field A -&gt; Extract A&#8221; and enter &#8220;<strong>^google$</strong>&#8221; as input.</li>
<li>Select &#8220;Referral&#8221; under &#8220;Field B -&gt; Extract B&#8221; and enter &#8220;<strong>^http://www\.(google\.[^/]*)</strong>&#8221; as input.</li>
<li>Select &#8220;Campaign Source&#8221; under &#8220;Output To -&gt; Constructor&#8221; and enter &#8220;<strong>$B1</strong>&#8221; as input.</li>
<li>Set &#8220;Field A Required&#8221; to &#8220;<strong>Yes</strong>&#8220;.</li>
<li>Set &#8220;Field B Required&#8221; to &#8220;<strong>Yes</strong>&#8220;.</li>
<li>Set &#8220;Override Output Field&#8221; to &#8220;<strong>Yes</strong>&#8220;.</li>
</ul>
<p>What this filter does is to check that the traffic source is one of Google&#8217;s search engines and thus extract the &#8220;<strong>google.com.sg</strong>&#8221; part from the referral field (usually something like &#8220;<strong>http://www.google.com.sg/search?q=&#8230;</strong>&#8220;) then show the search engine source as &#8220;<strong>google.com.sg</strong>&#8220;. Do take note that while this is an example for Google search engines, the same steps (with slightly different input) will work with other search engines.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=NYa-lk6h9Nc:-l9vrt8YNSY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=NYa-lk6h9Nc:-l9vrt8YNSY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=NYa-lk6h9Nc:-l9vrt8YNSY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=NYa-lk6h9Nc:-l9vrt8YNSY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=NYa-lk6h9Nc:-l9vrt8YNSY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/NYa-lk6h9Nc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/89-tracking-country-specific-google-search-engines-in-google-analytics-using-filters/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CakePHP’s HtmlHelper::link() Escaping of Attribute Values Gotcha</title>
		<link>http://derickng.com/posts/80-cakephps-htmlhelperlink-escaping-of-attribute-values-gotcha</link>
		<comments>http://derickng.com/posts/80-cakephps-htmlhelperlink-escaping-of-attribute-values-gotcha#comments</comments>
		<pubDate>Wed, 15 Apr 2009 09:18:29 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[HtmlHelper]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=80</guid>
		<description><![CDATA[Just updated pHing Classifieds to CakePHP 1.2.2.8120 and that breaks some JavaScript codes for deleting of messages.  Turns out the escape attribute is now passed on to Helper::parseAttributes() so if you have an image link like me, you will have to remember to manually escape the attribute values.

&#60;?= $appHtml-&#62;link(
   $appHtml-&#62;image(&#039;icons/bin.png&#039;),
   [...]]]></description>
			<content:encoded><![CDATA[<p>Just updated <a title="pHing Classifieds" href="http://phing.com">pHing Classifieds</a> to <a href="http://bakery.cakephp.org/articles/view/release-1-2-2-8120">CakePHP 1.2.2.8120</a> and that breaks some JavaScript codes for deleting of messages.  Turns out the escape attribute is now passed on to Helper::parseAttributes() so if you have an image link like me, you will have to remember to manually escape the attribute values.</p>
<pre class="brush: php">
&lt;?= $appHtml-&gt;link(
   $appHtml-&gt;image(&#039;icons/bin.png&#039;),
   &#039;#&#039;,
   array(
      &#039;escape&#039; =&gt; false,
      &#039;onclick&#039; =&gt; h(&#039;if (confirm(&quot;True?&quot;)) alert (&quot;Yes&quot;); return false;&#039;)
   )
) ?&gt;
</pre>
<p>Not a big issue and it probably seem more consistent that the escape option is applied to both the link title and the HTML attributes. See ticket <a href="https://trac.cakephp.org/ticket/6071">#6071</a> for why it was changed and <a href="https://trac.cakephp.org/changeset/8053/branches/1.2.x.x/cake/libs/view/helpers/html.php">what was changed</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=ul948a74-VI:jdDZOa2KcnQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=ul948a74-VI:jdDZOa2KcnQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=ul948a74-VI:jdDZOa2KcnQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=ul948a74-VI:jdDZOa2KcnQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=ul948a74-VI:jdDZOa2KcnQ:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/ul948a74-VI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/80-cakephps-htmlhelperlink-escaping-of-attribute-values-gotcha/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Middle Click to Open Links in a New Tab in Firefox on a Mac</title>
		<link>http://derickng.com/posts/69-middle-click-to-open-links-in-a-new-tab-in-firefox-on-a-mac</link>
		<comments>http://derickng.com/posts/69-middle-click-to-open-links-in-a-new-tab-in-firefox-on-a-mac#comments</comments>
		<pubDate>Mon, 09 Mar 2009 16:31:16 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mouse]]></category>

		<guid isPermaLink="false">http://derickng.com/?p=69</guid>
		<description><![CDATA[I have always been irritated by the fact that I could not middle-click to open links in a new tab in Firefox on a Mac. This is one of the most used action while web browsing on a PC yet I have to do a command-click while on a Mac. But I am glad I [...]]]></description>
			<content:encoded><![CDATA[<p>I have always been irritated by the fact that I could not middle-click to open links in a new tab in Firefox on a Mac. This is one of the most used action while web browsing on a PC yet I have to do a command-click while on a Mac. But I am glad I finally found a solution! I am using <a href="http://www.microsoft.com/hardware/gaming/ProductDetails.aspx?pid=087">Microsoft&#8217;s IntelliMouse Explorer 3.0</a> and it seems like by installing the software for the mouse, I get to configure the behavior of the wheel button used for middle-clicking. Call me silly but I have never bothered with any mouse software/drivers on Windows.</p>
<p>So how this works is you basically <a href="http://www.microsoft.com/hardware/download/download.aspx?category=MK">download the software for the mouse</a> from <a href="http://www.microsoft.com/hardware/">Microsoft Hardware</a> and install! After installation, open System Preferences and you should see &#8220;Microsoft Mouse&#8221; under the group &#8220;Other&#8221;. Now all you have to do is to set your assignment of the &#8220;Wheel Button&#8221; to &#8220;Handled by Mac OS&#8221;. That&#8217;s all and it works perfect. One less switch to a Mac problem. :p</p>
<p><a href="http://derickng.com/wordpress/wp-content/uploads/2009/03/mac-system-preferences-microsoft-mouse.png"><img class="alignnone size-medium wp-image-74" title="Microsoft Mouse System Preferences" src="http://derickng.com/wordpress/wp-content/uploads/2009/03/mac-system-preferences-microsoft-mouse-500x478.png" alt="Microsoft Mouse System Preferences" width="500" height="478" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Derilicious?a=QVNrTvwTkRM:uOicZWi9_tI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Derilicious?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=QVNrTvwTkRM:uOicZWi9_tI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=QVNrTvwTkRM:uOicZWi9_tI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Derilicious?a=QVNrTvwTkRM:uOicZWi9_tI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Derilicious?i=QVNrTvwTkRM:uOicZWi9_tI:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/QVNrTvwTkRM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/69-middle-click-to-open-links-in-a-new-tab-in-firefox-on-a-mac/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working with Associations using CakePHP</title>
		<link>http://derickng.com/posts/56-working-with-associations-using-cakephp</link>
		<comments>http://derickng.com/posts/56-working-with-associations-using-cakephp#comments</comments>
		<pubDate>Sun, 18 Jan 2009 14:14:34 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Associations]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[ContainableBehavior]]></category>
		<category><![CDATA[Model]]></category>

		<guid isPermaLink="false">http://derick.lyniq.com/?p=56</guid>
		<description><![CDATA[I was asked by Niraja Mulye of Packt Publishing if I would be interested in publishing an article on my blog from the book, CakePHP Application Development. Since it seems relevant to any starting out with CakePHP, I guess why not.
Instead of copying and pasting what was sent, I found two articles which seemed like [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked by Niraja Mulye of <a href="http://www.packtpub.com">Packt Publishing</a> if I would be interested in publishing an article on my blog from the book, <a href="http://www.packtpub.com/cakephp-application-development">CakePHP Application Development</a>. Since it seems relevant to any starting out with CakePHP, I guess why not.</p>
<p>Instead of copying and pasting what was sent, I found two articles which seemed like the original source. Being properly formatted, I guess it will be more appropriate for me to point them to you. The first article titled, <a href="http://www.packtpub.com/article/working-with-simple-associations-using-cakephp">Working with Simple Associations using CakePHP</a> talks about the basic belongsTo, hasOne and hasMany assocations while the second article titled, <a href="http://www.packtpub.com/article/working-with-complex-associations-using-cakephp">Working with Complex Associations using CakePHP</a> tackles the hasAndBelongsToMany association where most beginners have difficulty with.</p>
<p>The articles will be useful for anyone starting out but unfortunately, CakePHP had gone through lots of changes and the book (published on July 2008) is based on an older version of CakePHP. So now there are actually better ways of dealing with associations using the <a href="http://book.cakephp.org/view/474/Containable">Containable Behavior</a>. The Containable Behavior binds and unbinds model on the fly, automatically setting the recursive level to suit. This means you no longer have to bother about setting the recursive level as long as you &#8220;contain&#8221; your <code>find()</code> queries. I am mentioning this because I have to warn against the setting of recursive level directly.</p>
<pre class="brush: php">

// All models have recursive level set to 1 by default
$this-&gt;Author-&gt;recursive = 2;
$this-&gt;Author-&gt;id = 1001;
$this-&gt;Author-&gt;find(&#039;first&#039;); // Return results based on recursive level of 2
// some
// codes
// in
// between
$this-&gt;Author-&gt;find(&#039;all&#039;); // Return results based on recursive level of 2 (as set previously) and not 1!
</pre>
<p>This causes CakePHP to retrieve more data than it should when it is unintended by you. My suggestion is to have all models default to recursive level -1 by setting it in the AppModel and let &#8220;contain&#8221; handle the rest.</p>
<pre class="brush: php">

$this-&gt;Author-&gt;id = 1001;
$this-&gt;Author-&gt;find(&#039;first&#039;, array(&#039;contain&#039; =&gt; &#039;Book&#039;)); // Returns author 1001 and all books authored by him/her
$this-&gt;Author-&gt;find(&#039;all&#039;); // Returns all authors only
</pre>
<p>How nice!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Derilicious?a=crUQy5P6"><img src="http://feeds.feedburner.com/~f/Derilicious?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Derilicious?a=Wox86YBQ"><img src="http://feeds.feedburner.com/~f/Derilicious?i=Wox86YBQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Derilicious?a=5yyP123P"><img src="http://feeds.feedburner.com/~f/Derilicious?i=5yyP123P" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/lcEx0ZVsrA0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/56-working-with-associations-using-cakephp/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What a Start to 2009</title>
		<link>http://derickng.com/posts/54-what-a-start-to-2009</link>
		<comments>http://derickng.com/posts/54-what-a-start-to-2009#comments</comments>
		<pubDate>Sun, 11 Jan 2009 15:19:27 +0000</pubDate>
		<dc:creator>Derick Ng</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Planet CakePHP]]></category>

		<guid isPermaLink="false">http://derick.lyniq.com/posts/54-what-a-start-to-2009</guid>
		<description><![CDATA[5 days of downtime and finally back online. A faulty RAID card leading to all sorts of restoration problems. Totally unacceptable. I have to probably start looking out for a new web hosting provider but what a hassle.  
For fellow Planet CakePHP subscribers, I apologise for having you missed 5 days of CakePHP news. [...]]]></description>
			<content:encoded><![CDATA[<p>5 days of downtime and finally back online. A faulty RAID card leading to all sorts of restoration problems. Totally unacceptable. I have to probably start looking out for a new web hosting provider but what a hassle. <img src='http://derickng.com/wordpress/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>For fellow Planet CakePHP subscribers, I apologise for having you missed 5 days of CakePHP news. Now that it is back, keep reading.</p>
<p>Happy New Year!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Derilicious?a=YH2bIlNE"><img src="http://feeds.feedburner.com/~f/Derilicious?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Derilicious?a=ZBpOVIhT"><img src="http://feeds.feedburner.com/~f/Derilicious?i=ZBpOVIhT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Derilicious?a=Z8Btu8GE"><img src="http://feeds.feedburner.com/~f/Derilicious?i=Z8Btu8GE" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Derilicious/~4/CBKAK-QUBO4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://derickng.com/posts/54-what-a-start-to-2009/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
