<?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>Made of Everything You&#039;re Not &#187; wp-click-track</title>
	<atom:link href="http://blog.ericlamb.net/tag/wp-click-track/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ericlamb.net</link>
	<description>Thoughts on programming, people and life</description>
	<lastBuildDate>Thu, 27 Oct 2011 01:29:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>3 Lines of Code&#8230;</title>
		<link>http://blog.ericlamb.net/2011/04/3-lines-of-code/</link>
		<comments>http://blog.ericlamb.net/2011/04/3-lines-of-code/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 04:32:00 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Brain Dump]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=3643</guid>
		<description><![CDATA[I just pushed an update to the WordPress plugin repository for the latest update to Wp-Click-Track. It&#8217;s been around 9 months since I&#8217;ve had a chance to even look at my own stats with Wp-Click-Track much less fix a couple bugs that have cropped up since but I finally found the time. And then, after [...]]]></description>
			<content:encoded><![CDATA[<p>I just pushed an update to the WordPress plugin repository for the latest update to Wp-Click-Track. It&#8217;s been around 9 months since I&#8217;ve had a chance to even look at my own stats with <a title="Wp-Click-Track" href="http://blog.ericlamb.net/projects/wp-click-track/">Wp-Click-Track</a> much less fix a couple bugs that have cropped up since but I finally found the time. And then, after spending 10 whole minutes looking into the cause of a couple bugs when I found that 3 lines of code fixed all of them.</p>
<p>3 little lines of code to fix the timezone bug, disappearing stats bug and random timestamp issues.</p>
<p>Also, please keep in mind that Wp-Click-Track is a labor of love; I work full time as a freelance programmer and try to keep a healthy social life so sometimes my priorities are a little wacked. Point being, I try to stay on top of these things but sometimes life gets in the way. But, I will get to it I can promise that.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2011/04/3-lines-of-code/' addthis:title='3 Lines of Code&#8230; '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2011/04/3-lines-of-code/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WP-Click-Track 0.7.2 Released</title>
		<link>http://blog.ericlamb.net/2010/08/wp-click-track-0-7-2-released/</link>
		<comments>http://blog.ericlamb.net/2010/08/wp-click-track-0-7-2-released/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 21:07:03 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=3371</guid>
		<description><![CDATA[Today I finally found the time to release an update to wp-click-track with a few bugs that some users have been encountering. This release is purely a bug fix release so there won&#8217;t be any new bells or whistles but if you run IIS 6 or want to clear out some links or reset your [...]]]></description>
			<content:encoded><![CDATA[<p>Today I finally found the time to release an update to wp-click-track with a few bugs that some users have been encountering. This release is purely a bug fix release so there won&#8217;t be any new bells or whistles but if you run IIS 6 or want to clear out some links or reset your system you&#8217;re in luck. The only &#8220;interesting&#8221; bug that was fixed was the IIS6 HTTPS issue.</p>
<div id="attachment_3374" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2010/08/microsoft-logo.png" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2010%2F08%2Fmicrosoft-logo.png','WP-Click-Track+0.7.2+Released')"><img src="http://blog.ericlamb.net/wp-content/uploads/2010/08/microsoft-logo-300x220.png" alt="WP-Click-Track 0.7.2 Released" title="WP-Click-Track 0.7.2 Released" width="300" height="220" class="size-medium wp-image-3374" /></a><p class="wp-caption-text">WP-Click-Track 0.7.2 Released</p></div>
<p>Because of how IIS6 and PHP populate the $_SERVER['HTTPS'] value some users were experiencing issues with their stats page. Turns out that <a href="http://php.net/manual/en/reserved.variables.server.php" onclick="return TrackClick('http%3A%2F%2Fphp.net%2Fmanual%2Fen%2Freserved.variables.server.php','IIS6+will+return+a+value+of+off')" title="IIS6 will return a value of off" target="_blank">IIS6 will return a value of &#8220;off&#8221;</a> if the request wasn&#8217;t made through HTTPS instead of the default behavior of returning a boolean. So, while the below code will work with Apache and newer versions of IIS, IIS6 creates a bit of a false positive:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #22f;">if</span><span style="color: #000;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #000;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #000;">&#91;</span><span style="color: #0000ff;">'HTTPS'</span><span style="color: #000;">&#93;</span><span style="color: #000;">&#41;</span><span style="color: #000;">&#41;</span>
<span style="color: #000;">&#123;</span>
     <span style="color: #666666; font-style: italic;">//server has HTTPS but IIS6 will always think it's on</span>
<span style="color: #000;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Instead, it&#8217;s better to check the value along with the existance check like:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #22f;">if</span><span style="color: #000;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #000;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #000;">&#91;</span><span style="color: #0000ff;">'HTTPS'</span><span style="color: #000;">&#93;</span><span style="color: #000;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$_SERVER</span><span style="color: #000;">&#91;</span><span style="color: #0000ff;">'HTTPS'</span><span style="color: #000;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">'off'</span><span style="color: #000;">&#41;</span>
<span style="color: #000;">&#123;</span>
    <span style="color: #666666; font-style: italic;">//server has HTTPS and IIS6 is being account for</span>
<span style="color: #000;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Go Microsoft <img src='http://blog.ericlamb.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2010/08/wp-click-track-0-7-2-released/' addthis:title='WP-Click-Track 0.7.2 Released '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2010/08/wp-click-track-0-7-2-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wp-Click-Track 0.7.1</title>
		<link>http://blog.ericlamb.net/2010/05/wp-click-track-0-7-1/</link>
		<comments>http://blog.ericlamb.net/2010/05/wp-click-track-0-7-1/#comments</comments>
		<pubDate>Thu, 20 May 2010 07:00:44 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=3166</guid>
		<description><![CDATA[Dreamhost is slandering me! They think I suck and have no problem telling people as much. Seriously; I write bad code by them. How do I know? Because Chris Duke over at AppModo told me so. Problem is, Dreamhost was 100% right. Yup; I fucked up. On Monday I got an email from Chris asking [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Dreamhost" href="http://www.dreamhost.com/" onclick="return TrackClick('http%3A%2F%2Fwww.dreamhost.com%2F','Dreamhost')" target="_blank">Dreamhost</a> is slandering me! They think I suck and have no problem telling people as much. Seriously; I write bad code by them. How do I know? Because Chris Duke over at <a title="AppModo" href="http://appmodo.com/" onclick="return TrackClick('http%3A%2F%2Fappmodo.com%2F','AppModo')" target="_blank">AppModo</a> told me so. Problem is, Dreamhost was 100% right. Yup; I fucked up.</p>
<div id="attachment_3167" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2010/05/wp-click-track-0.7.1.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2010%2F05%2Fwp-click-track-0.7.1.jpg','Wp-Click-Track+0.7.1')"><img class="size-medium wp-image-3167" title="Wp-Click-Track 0.7.1" src="http://blog.ericlamb.net/wp-content/uploads/2010/05/wp-click-track-0.7.1-300x168.jpg" alt="Wp-Click-Track 0.7.1" width="300" height="168" /></a><p class="wp-caption-text">Wp-Click-Track 0.7.1</p></div>
<p>On Monday I got an email from Chris asking for some help with one of the WordPress plugins I wrote; wp-click-track. Chris was cool enough to let me post the message he received from Dreamhost:</p>
<blockquote><p>Hello,</p>
<p>I&#8217;m writing you about your database &#8220;appmodo&#8221;, please write me back as soon as possible.  There seems to be a plugin you are running that is poorly coded (missing table joins) and this 1300+ second query that it is running is causing high server load spikes. If this plugin is not fixed, or disabled, and it causes server problems, we may need to disable the wp_tracking_clicks and wp_tracking_links tables.  You can write me at justin@dreamhost.com.</p>
<p>The problem queries:</p>
<p># Query_time: 2181  Lock_time: 1115  Rows_sent: 1  Rows_examined: 38703 use appmodo;</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #22f;">SELECT</span> date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%Y-%m-%d&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> first_click<span style="color: #66cc66;">,</span>
date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%j&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> day_of_year <span style="color: #22f;">FROM</span> wp_tracking_clicks tc<span style="color: #66cc66;">,</span>
wp_tracking_links tl <span style="color: #22f;">WHERE</span> tc<span style="color: #66cc66;">.</span>click_id !<span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'0'</span>  <span style="color: #22f;">GROUP</span> <span style="color: #22f;">BY</span> first_click <span style="color: #22f;">ORDER</span>
<span style="color: #22f;">BY</span> first_click <span style="color: #22f;">DESC</span> <span style="color: #22f;">LIMIT</span> <span style="color: #cc66cc;">1</span>;</pre></div></div>

<p># Query_time: 1995  Lock_time: 924  Rows_sent: 1  Rows_examined: 38703 use appmodo;</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #22f;">SELECT</span> date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%Y-%m-%d&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> first_click<span style="color: #66cc66;">,</span>
date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%j&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> day_of_year <span style="color: #22f;">FROM</span> wp_tracking_clicks tc<span style="color: #66cc66;">,</span>
wp_tracking_links tl <span style="color: #22f;">WHERE</span> tc<span style="color: #66cc66;">.</span>click_id !<span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'0'</span>  <span style="color: #22f;">GROUP</span> <span style="color: #22f;">BY</span> first_click <span style="color: #22f;">ORDER</span>
<span style="color: #22f;">BY</span> first_click <span style="color: #22f;">DESC</span> <span style="color: #22f;">LIMIT</span> <span style="color: #cc66cc;">1</span>;</pre></div></div>

<p># Query_time: 1387  Lock_time: 309  Rows_sent: 1  Rows_examined: 38703 use appmodo;</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #22f;">SELECT</span> date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%Y-%m-%d&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> first_click<span style="color: #66cc66;">,</span>
date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%j&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> day_of_year <span style="color: #22f;">FROM</span> wp_tracking_clicks tc<span style="color: #66cc66;">,</span>
wp_tracking_links tl <span style="color: #22f;">WHERE</span> tc<span style="color: #66cc66;">.</span>click_id !<span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'0'</span>  <span style="color: #22f;">GROUP</span> <span style="color: #22f;">BY</span> first_click <span style="color: #22f;">ORDER</span>
<span style="color: #22f;">BY</span> first_click <span style="color: #22f;">DESC</span> <span style="color: #22f;">LIMIT</span> <span style="color: #cc66cc;">1</span>;</pre></div></div>

<p># Query_time: 2016  Lock_time: 930  Rows_sent: 1  Rows_examined: 38703 use appmodo;</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #22f;">SELECT</span> date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%Y-%m-%d&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> first_click<span style="color: #66cc66;">,</span>
date_format<span style="color: #000;">&#40;</span>click_date<span style="color: #66cc66;">,</span><span style="color: #ff0000;">&quot;%j&quot;</span><span style="color: #000;">&#41;</span> <span style="color: #22f;">AS</span> day_of_year <span style="color: #22f;">FROM</span> wp_tracking_clicks tc<span style="color: #66cc66;">,</span>
wp_tracking_links tl <span style="color: #22f;">WHERE</span> tc<span style="color: #66cc66;">.</span>click_id !<span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'0'</span>  <span style="color: #22f;">GROUP</span> <span style="color: #22f;">BY</span> first_click <span style="color: #22f;">ORDER</span>
<span style="color: #22f;">BY</span> first_click <span style="color: #22f;">DESC</span> <span style="color: #22f;">LIMIT</span> <span style="color: #cc66cc;">1</span>;</pre></div></div>

<p>Thanks!<br />
Justin K</p></blockquote>
<p>Justin did a nice job highlighting what the issue was; I didn&#8217;t join the tables together so it would take a really long time to complete the scans if there were a lot of rows in the tables. Another reason to always develop with <a title="Everything Is Fast For Small n" href="http://www.codinghorror.com/blog/2007/09/everything-is-fast-for-small-n.html" onclick="return TrackClick('http%3A%2F%2Fwww.codinghorror.com%2Fblog%2F2007%2F09%2Feverything-is-fast-for-small-n.html','Everything+Is+Fast+For+Small+n')" target="_blank">large data</a> sets; something I obviously didn&#8217;t do with wp-click-track.</p>
<blockquote><p>Your application is useful and popular. Your users love it. Your users love you. But over the next week, something curious happens. As people use the application, it gets progressively slower and slower. Soon, the complaints start filtering in.  Within a few weeks, the app is well-neigh unusable due to all the insufferable delays it subjects users to&#8211; and <a title="Designing for Informavores, or, Why Users Behave Like Animals Online" href="http://www.codinghorror.com/blog/archives/000882.html" onclick="return TrackClick('http%3A%2F%2Fwww.codinghorror.com%2Fblog%2Farchives%2F000882.html','Designing+for+Informavores%2C+or%2C+Why+Users+Behave+Like+Animals+Online')" target="_blank">your users turn on you</a>.</p></blockquote>
<p>Anyway, there was no excuse for that; this was shoddy on my part. The only explanation I have is poor quality on my part. </p>
<p>This particular bug affected the line chart on the admin dashboard. Ever wonder why that particular graph took <em>forever</em> to load? Yup, that&#8217;s why.</p>
<p>What&#8217;s funny, to me at least, was that I had already fixed this particular issue; I just hadn&#8217;t released it yet. This particular bug was planned to be released with 0.8 but 0.8 is taking longer to complete than I initially thought it would. So the bug fix languished and sat there. Unreleased.</p>
<p>So yeah, wp-click-track 0.7.1. It&#8217;s a good release to get.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2010/05/wp-click-track-0-7-1/' addthis:title='Wp-Click-Track 0.7.1 '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2010/05/wp-click-track-0-7-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-Click-Track 0.7 Released (Umm Last Week)</title>
		<link>http://blog.ericlamb.net/2009/12/wp-click-track-0-7-released-umm-last-week/</link>
		<comments>http://blog.ericlamb.net/2009/12/wp-click-track-0-7-released-umm-last-week/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 22:39:57 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Brain Dump]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2800</guid>
		<description><![CDATA[I hadn&#8217;t really had much time to announce this (what with the holidays and stuff) but last week WP-Click-Track 0.7 was released. This release includes a few bug fixes and a couple new features. I&#8217;d planned to release this a while ago but testing took a little longer than anticipated but it&#8217;s finally done. There [...]]]></description>
			<content:encoded><![CDATA[<p>I hadn&#8217;t really had much time to announce this (what with the holidays and stuff) but last week <a title="WP-Click-Track 0.7" href="http://blog.ericlamb.net/projects/wp-click-track/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2F','WP-Click-Track+0.7')" target="_self">WP-Click-Track 0.7</a> was released. This release includes a few bug fixes and a couple new features. I&#8217;d planned to release this a while ago but testing took a little longer than anticipated but it&#8217;s finally done.</p>
<div id="attachment_2803" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/12/Fanfare_Team.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F12%2FFanfare_Team.jpg','WP-Click-Track+0.7+Released+%28Umm+Last+Week%29')"><img class="size-medium wp-image-2803" title="WP-Click-Track 0.7 Released (Umm Last Week)" src="http://blog.ericlamb.net/wp-content/uploads/2009/12/Fanfare_Team-300x244.jpg" alt="WP-Click-Track 0.7 Released (Umm Last Week)" width="300" height="244" /></a><p class="wp-caption-text">WP-Click-Track 0.7 Released (Umm Last Week)</p></div>
<p>There were a couple minor, edge, bugs that I don&#8217;t want to go into detail about but there were 2 in particular that deserve a mention.</p>
<p>First, there was a bug fix for SSL enabled admins. This one I hadn&#8217;t really anticipated; I&#8217;d never thought someone would use ssl for the admin panel. The problem was that if you went to the admin through ssl the graphs wouldn&#8217;t render properly. My bad.</p>
<p>Then there was an issue in the graphs. If the charted number was over 1,000 the chart would basically throw up. Rookie move on my part but some escaping fixed that right up. If you ran into this bug I&#8217;m really sorry.</p>
<p>0.7 also includes an improved cookie model. I admit, I&#8217;ve been completely lazy about cookie management for <em>years </em>now. Yes, sessions are nice but when you&#8217;re building for a multi-server environment sessions can get a little tricky. Problem is that there are some pretty specific rules for cookies and just setting a cookie willy nilly, without any thought to the implications, can <a title="Sometimes, Poor Design Works" href="http://blog.ericlamb.net/2009/06/sometimes-poor-design-works/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F06%2Fsometimes-poor-design-works%2F','Sometimes%2C+Poor+Design+Works')" target="_blank">screw things up</a>. Now it&#8217;s much, <em>much</em>, better.</p>
<p>Among the additions there&#8217;s a new configuration value to disable tracking of internal links. This should help with all the clicks in peoples galleries I&#8217;ve been hearing so much about <img src='http://blog.ericlamb.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Speaking of configuration the entire configuration section has been rewritten to be more user friendly. Instead of the HUGE and confusing single page everything is organized into tabs and should, hopefully, make for a better experience when you do have to configure something.</p>
<p>Anyway, you can install it within the WordPress plugin manager or if you want to take a  look at the <a title="Download Click Tracker" href="http://blog.ericlamb.net/?wp_ct=46" target="_blank">code here you go</a>.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/12/wp-click-track-0-7-released-umm-last-week/' addthis:title='WP-Click-Track 0.7 Released (Umm Last Week) '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/12/wp-click-track-0-7-released-umm-last-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-Click-Track: A Roadmap</title>
		<link>http://blog.ericlamb.net/2009/08/wp-click-track-a-roadmap/</link>
		<comments>http://blog.ericlamb.net/2009/08/wp-click-track-a-roadmap/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 13:00:39 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Brain Dump]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2401</guid>
		<description><![CDATA[When I first started wp-click-track it was because I had a specific need; I wanted to find out how helpful my posts would and what better indicator than how many people clicked on the links in my posts. It was only to drive traffic and get my name out on the Intertubes that I released [...]]]></description>
			<content:encoded><![CDATA[<p>When I first started wp-click-track it was because I had a specific need; I wanted to find out how helpful my posts would and what better indicator than how many people clicked on the links in my posts. It was only to drive traffic and get my name out on the Intertubes that I released the plugin to other WordPress users and sites.</p>
<div id="attachment_2402" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/08/roadmap.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F08%2Froadmap.jpg','Roadmap')"><img class="size-medium wp-image-2402" title="Roadmap" src="http://blog.ericlamb.net/wp-content/uploads/2009/08/roadmap-300x163.jpg" alt="Roadmap" width="300" height="163" /></a><p class="wp-caption-text">Roadmap</p></div>
<p>I never imagined people would actually use it much less have so much great feedback and improvement suggestions. As great as the insight is though it has pretty much made my plans for features and upgrades secondary to the users requests. As it should; because of the users wp-click-track is on a great track to become something truly useful.</p>
<p>There are only 3 releases left before the final, 1.0, version and to reach that I have the following outline:</p>
<h3>0.7</h3>
<p>The features for this release are going to focus on Data Export, Localization and a reworking of the configuration page.</p>
<p>Data export is a little complicated because two offerings have to be created to allow for older systems; normal csv/tsv and complete XLS export for users with newer systems. The XLS export will use the Excel 2007 XLS file format built using phpExcel. Since phpExcel requires php 5.2.5, <em>at least,</em> the exporter needs to be smart enough to degrade elegantly when the system can&#8217;t perform.</p>
<p>The Localization phase has already started with the release of 0.6. Initially, wp-click-track will be localized in french and spanish using Google Translate (until a native speaker can contribute). If anyone knows of a better method for transcription I&#8217;m open to suggestions.</p>
<p>There&#8217;s also going to be a refactoring of the cookie functionality. I admit, I was a little lazy about this, something I&#8217;ll go into more detail about at a later time. Now it&#8217;s time to clean this up.</p>
<h3>0.8</h3>
<p>It&#8217;s important that wp-click-track act like a native WordPress module; that&#8217;s what 0.8 is going to focus on. This one is obviously going to include more AJAXy goodness  to make link management easier and a little more inline with the rest of WordPress.</p>
<p>One thing 0.8 will definitely have is a removal of the Edit Link page. I&#8217;ve never really been happy with how that functionality worked; it&#8217;s very&#8230; standard. Instead, it will be modified into a simple &#8220;click to edit&#8221; style similar to how the permalinks are edited on the post edit page.</p>
<h3>0.9</h3>
<p>0.9 will include some advanced functionality like backup and import capabilities and the creation of WordPress hooks so other developers can extend the plugin. I have some ideas for a Bookmarklet for link creation but I don&#8217;t know how relevant that might be to other users.</p>
<p>By this point, I should have a fix for the little bugs that have been with the plugin since the beginning. I can&#8217;t say they won&#8217;t be done before 0.9 but they will be done by then.</p>
<h3>1.0</h3>
<p>Unless there&#8217;s any objection this release is also going to include functionality to send me usage and error information. I guarantee there won&#8217;t be any sensitive data being sent; EVER. It&#8217;s just important to know how the plugin is being used and what errors happen. This will be opt-in too so it won&#8217;t be a requirement.</p>
<p>The other thing the plugin will be ready for is donations. I never really wanted  to go this route but I had a day job then. This too will be opt-in only and there won&#8217;t be any nag screens or anything annoying. This will be as unobtrusive as possible I promise.</p>
<p>It should be noted that there&#8217;s no real guarantee that the functionality mentioned above will be done in that order. Need drives the direction more than anything else and the users certainly aren&#8217;t shy about steering the ship so to speak.</p>
<p>After 1.0 I don&#8217;t really anticipate any more updates; except for bug fixes or specific requests. Obviously, when WordPress changes their core functionality again the plugin will be rewritten and tested and a new version cycle will probably begin.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/08/wp-click-track-a-roadmap/' addthis:title='WP-Click-Track: A Roadmap '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/08/wp-click-track-a-roadmap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WP-Click-Track 0.6: Going Native</title>
		<link>http://blog.ericlamb.net/2009/08/wp-click-track-0-6-going-native/</link>
		<comments>http://blog.ericlamb.net/2009/08/wp-click-track-0-6-going-native/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 13:00:15 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2335</guid>
		<description><![CDATA[After about a month of working on the plugin around 20 hours a week I&#8217;m happy to announce the release of wp-click-track 0.6. This release includes a couple small bugs as well as one really bitch of a bug that&#8217;s been with the system since the release of 0.1. To make it worthwhile to upgrade [...]]]></description>
			<content:encoded><![CDATA[<p>After about a month of working on the plugin around 20 hours a week I&#8217;m happy to announce the release of wp-click-track 0.6. This release includes a couple small bugs as well as one really bitch of a bug that&#8217;s been with the system since the release of 0.1. To make it worthwhile to upgrade there&#8217;s also a few features that have been requested and a couple I&#8217;ve personally been wanting for a while.</p>
<div id="attachment_2338" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/08/going_native.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F08%2Fgoing_native.jpg','WP-Click-Track+0.6%3A+Going+Native')"><img class="size-medium wp-image-2338" title="WP-Click-Track 0.6: Going Native" src="http://blog.ericlamb.net/wp-content/uploads/2009/08/going_native-300x225.jpg" alt="WP-Click-Track 0.6: Going Native" width="300" height="225" /></a><p class="wp-caption-text">WP-Click-Track 0.6: Going Native</p></div>
<p>I have to admit, I didn&#8217;t think this update would take as long to deploy as it did. I don&#8217;t have a day job so, my time being free, I honestly thought I&#8217;d be done in a couple days. Lesson: estimates are hard even for your own projects.</p>
<p>One of the reasons was caused by the addition of a dedicated menu instead of the single entry point. Because the functionality has grown to the point of a full CRUD program the old menu style just wasn&#8217;t that useful anymore. Making the change required paying down a lot of built up technical debt in the system.</p>
<p>Another new feature is a search system for the links. I&#8217;ve been planning on this one for a while but because there was changes to the database, and I wasn&#8217;t really confident in deploying those changes until now, I&#8217;ve been sitting on the addition. The system will attempt to convert  the link table to the MyISAM format and, if it can&#8217;t, will use a basic LIKE search syntax as a fallback. This should really help those with bunches of links.</p>
<p>And, much to the delight of many I&#8217;m sure, this release includes a couple sidebar widgets for making the top links and &#8220;todays&#8221; click count data public. These work as you would expect a widget to work; they&#8217;ll have to be activated from the Appearance-&gt;Widget administration interface as any other widget should.</p>
<p>Finally, as far as the features and additions go, the interface has been changed to match the native WordPress interface. This should keep the experience of looking at the reports a little more fluid and less jarring.</p>
<p>The best thing about this release isn&#8217;t a feature but a single bug fix. For a while now (too long really) there&#8217;s been an issue that could keep certain links from being tracked accurately if the link didn&#8217;t open in a new window on FireFox 2&amp;3. This was a bitch of a bug that was difficult to isolate and fix; but it&#8217;s finally, <em>finally, </em>dead.</p>
<p>In anticipation of 0.7, which focus primarily on l10n and i18n, 0.6 is ready to be localized. (BTW, if anyone is willing to localize the plugin into a different language please drop me a line.)</p>
<p>As always please report any bugs or issues with <a title="wp-click-track" href="http://blog.ericlamb.net/projects/wp-click-track/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2F','wp-click-track')" target="_self">wp-click-track</a>; I&#8217;ll get them fixed ASAP.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/08/wp-click-track-0-6-going-native/' addthis:title='WP-Click-Track 0.6: Going Native '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/08/wp-click-track-0-6-going-native/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-Click-Track 0.5: The BIG Update</title>
		<link>http://blog.ericlamb.net/2009/06/wp-click-track-0-5-the-big-update/</link>
		<comments>http://blog.ericlamb.net/2009/06/wp-click-track-0-5-the-big-update/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 14:31:24 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2037</guid>
		<description><![CDATA[I&#8217;m back to working on a couple projects so I haven&#8217;t been able to work on Wp-Click-Track for a couple months. Hell, the last update was in March so, to be honest, it&#8217;s been about 3 months since the release of 0.4; though there were a couple, small, feature and bug fixes put out. This [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back to working on <a title="Tony Hawk Ride Official Site" href="http://blog.ericlamb.net/2009/06/tony-hawk-ride-official-site/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F06%2Ftony-hawk-ride-official-site%2F','Tony+Hawk+Ride+Official+Site')" target="_self">a</a> <a title="Ice Age 3 The Game Official Site" href="http://blog.ericlamb.net/2009/06/ice-age-3-the-game-official-site/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F06%2Fice-age-3-the-game-official-site%2F','Ice+Age+3+The+Game+Official+Site')" target="_self">couple</a> <a title="Dark Void Blog" href="http://blog.ericlamb.net/2009/06/dark-void-blog/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F06%2Fdark-void-blog%2F','Dark+Void+Blog')" target="_self">projects</a> so I haven&#8217;t been able to work on Wp-Click-Track for a couple months. Hell, the last update was in March so, to be honest, it&#8217;s been about 3 months since the release of 0.4; though there were a couple, small, feature and bug fixes put out.</p>
<div id="attachment_2040" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-2040" title="WP-Click-Track 0.5: The BIG Update " src="http://blog.ericlamb.net/wp-content/uploads/2009/06/bug-feature-300x225.jpg" alt="WP-Click-Track 0.5: The BIG Update " width="300" height="225" /><p class="wp-caption-text">WP-Click-Track 0.5: The BIG Update</p></div>
<p>This release includes a bunch of features that a lot of people have been asking for but also a fix for some stupidity on my part.</p>
<p>I made a HUGE mistake in how the data was being recorded and the flagging of unique versus individual clicks. The patch can&#8217;t be automated so you&#8217;ll be presented with a link to click once the upgrade is complete. I highly recommend you do this ASAP after upgrading.</p>
<h3>Features and Modifications</h3>
<p><a href="http://blog.ericlamb.net/projects/wp-click-track/comment-page-2/#comment-997" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2Fcomment-page-2%2F%23comment-997','Added+settings+to+disable+user+clicks')" target="_blank">Added settings to disable user clicks</a><br />
Added ignore IP address for click tracking<br />
<a href="http://blog.ericlamb.net/projects/wp-click-track/comment-page-2/#comment-1016" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2Fcomment-page-2%2F%23comment-1016','Added+link+deletion')" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2Fcomment-page-2%2F%23comment-1016','Added+link+statistics+reset')" target="_blank">Added link statistics reset</a><br />
<a href="http://blog.ericlamb.net/projects/wp-click-track/comment-page-2/#comment-1016" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2Fcomment-page-2%2F%23comment-1016','Added+link+deletion')" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2Fcomment-page-2%2F%23comment-1016','Added+link+statistics+reset')" target="_blank">Added link deletion</a><br />
Changed graphs to Open Flash Chart<br />
Added additional line chart vectors to display unique clicks<br />
Added link parsing of next and prev template tags<br />
Added link parsing of categories in posts/pages as well as sidebar widget<br />
Added link parsing of tags links template<br />
<a href="http://blog.ericlamb.net/projects/wp-click-track/comment-page-2/#comment-1045" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2Fcomment-page-2%2F%23comment-1045','Improved+title+extraction+to+reduce+No+Name+Given+auto-label')" target="_blank">Improved title extraction to reduce No Name Given auto-label</a><br />
Added global history and report page</p>
<h3>Bug Fixes</h3>
<p>Click graph date descrepancy issue<br />
Added bypass for external links being double tracked when entered in page<br />
Fixed backwards tracking flags<br />
Changed admin widget ordering to list most clicked to least click<br />
<a href="http://blog.ericlamb.net/projects/wp-click-track/comment-page-2/#comment-1032" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fprojects%2Fwp-click-track%2Fcomment-page-2%2F%23comment-1032','Fixed+php+short+tag+usage')" target="_blank">Fixed php short tag usage</a></p>
<p>Be sure to update your plugin ASAP and please let me know of any issues in the comments.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/06/wp-click-track-0-5-the-big-update/' addthis:title='WP-Click-Track 0.5: The BIG Update '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/06/wp-click-track-0-5-the-big-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mmmm&#8230; Feedback</title>
		<link>http://blog.ericlamb.net/2009/06/mmmm-feedback/</link>
		<comments>http://blog.ericlamb.net/2009/06/mmmm-feedback/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 22:10:57 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[promotion]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=1913</guid>
		<description><![CDATA[There&#8217;s a pretty positive review of wp-click-track on Daily Blog Tips, written by Daniel Scocco, today and it&#8217;s official; wp-click-track doesn&#8217;t suck. Not that it&#8217;s good, it just doesn&#8217;t suck   It&#8217;s always nice to see that someone has an opinion about something I&#8217;m involved in (good and bad). This is especially nice because it&#8217;s on [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a pretty positive review of <a title="wp-click-track review on Daily Blog Tips" href="http://www.dailyblogtips.com/wp-click-track-wordpress-plugin/" onclick="return TrackClick('http%3A%2F%2Fwww.dailyblogtips.com%2Fwp-click-track-wordpress-plugin%2F','wp-click-track+review+on+Daily+Blog+Tips')" target="_blank">wp-click-track on Daily Blog Tips</a>, written by Daniel Scocco, today and it&#8217;s official; wp-click-track doesn&#8217;t suck. Not that it&#8217;s good, it just doesn&#8217;t suck <img src='http://blog.ericlamb.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<div id="attachment_1914" class="wp-caption aligncenter" style="width: 212px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/06/daily_blog_tips.gif" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F06%2Fdaily_blog_tips.gif','Daily+Blog+Tips')"><img class="size-full wp-image-1914" title="Daily Blog Tips" src="http://blog.ericlamb.net/wp-content/uploads/2009/06/daily_blog_tips.gif" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F06%2Fdaily_blog_tips.gif','Daily+Blog+Tips')" alt="Daily Blog Tips" width="202" height="55" /></a><p class="wp-caption-text">Daily Blog Tips</p></div>
<p>It&#8217;s always nice to see that someone has an opinion about something I&#8217;m involved in (good and bad). This is especially nice because it&#8217;s on Daily Blog Tips, a site I actually read and enjoy.  </p>
<p>Thanks for the review Daniel.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/06/mmmm-feedback/' addthis:title='Mmmm&#8230; Feedback '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/06/mmmm-feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-Click-Track 0.4 Released Today!</title>
		<link>http://blog.ericlamb.net/2009/03/wp-click-track-04-released-today/</link>
		<comments>http://blog.ericlamb.net/2009/03/wp-click-track-04-released-today/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 20:25:53 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=927</guid>
		<description><![CDATA[It&#8217;s taken way too long to do but I&#8217;ve finally fixed a bunch of issues people have been experiencing. In fact, this was supposed to just be a bug release but I got a little carried away with the design and added in a couple overdue features. First, The Bugs To be blunt, there were [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s taken way too long to do but I&#8217;ve finally fixed a bunch of issues people have been experiencing. In fact, this was supposed to just be a bug release but I got a little carried away with the design and added in a couple overdue features.</p>
<h3>First, The Bugs</h3>
<div id="attachment_928" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/03/bugs.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F03%2Fbugs.jpg','Big+Bug%21%21+%28by+Denis+Collette%29')"><img class="size-medium wp-image-928" title="Big Bug!! (by Denis Collette)" src="http://blog.ericlamb.net/wp-content/uploads/2009/03/bugs-300x300.jpg" alt="Big Bug!! (by Denis Collette)" width="300" height="300" /></a><p class="wp-caption-text">Big Bug!! (by Denis Collette)</p></div>
<p>To be blunt, there were a couple nasty bugs in 0.3 that pretty much ruined the experience for a lot of people. I&#8217;m sorry for that. I swear, it worked on my blog <img src='http://blog.ericlamb.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, the bugs that were fixed include 2 that prevented the system from tracking (Gary) and a bug that pretty much destroyed a users blog (Joerg) plus a one that prevented the comment body from being parsed as well as a couple spelling issues.</p>
<p>The Gary bug prevented the tracker from working because of a simple pathing issue. I didn&#8217;t take into account that people might have their blog in a sub-directory of the domain so my calls were going to the ether instead of the WordPress installation. So, you know, my bad&#8230;</p>
<p>The Joreg bug was a little more insidious and harder to track down though. It basically consisted of a couple issues, that when combined, caused a memory failure on the users blog. This is pretty much the worst case scenario when developing for other people (to destroy the system) and I, unfortunately, didn&#8217;t experience this myself so it only became apparent on other peoples blogs. This one bugged the shit out of me.</p>
<p>To fix I had to take content from Joreg&#8217;s blog and add it to my system. After I did that my computer instantly burst into flames. I didn&#8217;t know that was even possible but there you go&#8230;</p>
<p>The actual cause of the bug came from 3 different causes:</p>
<ol>
<li>Email (mailto:) links</li>
<li>Anchor (#top) links</li>
<li>Missing (empty hrefs) links</li>
</ol>
<p>Turns out that my regex skills were lacking because I didn&#8217;t account for any of the above. To fix I just added checking for those types of links to the parser and am ignoring them for now. This is a no brainer for the missing and anchor links (why would you want to track those?) but I can see a reasonable argument for wanting to track mailto links.  I&#8217;ll be working on getting that working with the next release.</p>
<p>The comment parsing bug was easily fixed by changing the parse priority in the WordPress hook to a higher level than 1. This was an issue because WordPress uses it&#8217;s own plugin system to create links placed into comments to href links automagically so when I was parsing the href wasn&#8217;t created yet. I went with a priority of 9 and it worked great.</p>
<h3>Now, The Features</h3>
<div id="attachment_931" class="wp-caption aligncenter" style="width: 210px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/03/wheet_field.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F03%2Fwheet_field.jpg','New+Gold+Dream...+%28by+law_keven%29')"><img class="size-medium wp-image-931" title="New Gold Dream... (by law_keven)" src="http://blog.ericlamb.net/wp-content/uploads/2009/03/wheet_field-200x300.jpg" alt="New Gold Dream... (by law_keven)" width="200" height="300" /></a><p class="wp-caption-text">New Gold Dream... (by law_keven)</p></div>
<p>So, while I was trying to figure out the Joerg bug I got a little motivated and started work on a couple new features no really asked for but I felt the system could use. The biggest is a mod to add links for external distribution. If I&#8217;m going to be honest, this really started as a bit of  a copout on my part. I originally wanted the entire experience to be seemless to the user so they wouldn&#8217;t have to go through the pain of manually adding links to the system but with all the problems people were having with the parser and me not being able to figure it as fast as I wanted I thought having a fallback mechanism to add links made sense. It should be noted that this decision was made at 3AM after a night on the town.</p>
<p>Like most coding decisions made while, ahem&#8230;&#8221;<em>comfortable</em>&#8220;, this mod required more work than I initially thought. I don&#8217;t want to bore with the technical crap but suffice it to say  a HUGE refactoring was required so I wouldn&#8217;t gouge my eyes out while working on the plugin. Technical debt, you&#8217;ve got to pay the price at some point&#8230;</p>
<p>I also built in a little configuration panel so blog owners can explicitly state what portions of the code they want to parse and which they don&#8217;t. This was, again, meant as a stop gap for the Joerg bug with the idea being that blog owners could lower the parsing coverage if performance issues came up.</p>
<p>And that&#8217;s 0.4. I hope this one goes better than 0.3 but I have no idea at this point. I did include the <a title="Who's Using My Code" href="http://blog.ericlamb.net/2009/03/whos-using-my-code/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F03%2Fwhos-using-my-code%2F','Who')">activation monitor</a> so I can keep an eye on how many times it&#8217;s activated and/or deactivated so I&#8217;ll find out in about a week if people are actually using the plugin.</p>
<p>In the meantime, if anyone experiences any bugs or issues, no matter how small, please don&#8217;t hesitate to post a comment on the official <a title="WP-Click-Track 0.4" href="http://blog.ericlamb.net/wp-click-track/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-click-track%2F','WP-Click-Track+0.4')">WP-Click-Track 0.4</a> page.</p>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/03/wp-click-track-04-released-today/' addthis:title='WP-Click-Track 0.4 Released Today! '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/03/wp-click-track-04-released-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP-Click-Tracker 0.3</title>
		<link>http://blog.ericlamb.net/2009/02/wp-click-tracker-03/</link>
		<comments>http://blog.ericlamb.net/2009/02/wp-click-tracker-03/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 08:53:07 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-click-track]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=686</guid>
		<description><![CDATA[I&#8217;ve updated the repository with the latest version tonight. This release includes a couple bug fixes and a few improvements. Improvements Added Indexes on tables for better performance Updated Install system Added pie charts for clicks by day and hour Bug Fixes fixed hour click report formatting fixed blank link haunting fixed option saving Screenshots]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated the repository with the latest version tonight.</p>
<p>This release includes a couple bug fixes and a few improvements.</p>
<h3>Improvements</h3>
<ul>
<li>Added Indexes on tables for better performance</li>
<li>Updated Install system</li>
<li>Added pie charts for clicks by day and hour</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>fixed hour click report formatting</li>
<li>fixed blank link haunting</li>
<li>fixed option saving</li>
</ul>
<h3>Screenshots</h3>
<div id="attachment_683" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/01/screenshot-7.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F01%2Fscreenshot-7.jpg','Clicks+By+Hour+Pie+Chart')"><img class="size-medium wp-image-683" title="Clicks By Hour Pie Chart" src="http://blog.ericlamb.net/wp-content/uploads/2009/01/screenshot-7-300x222.jpg" alt="Clicks By Hour Pie Chart" width="300" height="222" /></a><p class="wp-caption-text">Clicks By Hour Pie Chart</p></div>
<div id="attachment_682" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/01/screenshot-8.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F01%2Fscreenshot-8.jpg','Day+Clicks+Pie+Chart')"><img class="size-medium wp-image-682" title="Day Clicks Pie Chart" src="http://blog.ericlamb.net/wp-content/uploads/2009/01/screenshot-8-300x222.jpg" alt="Day Clicks Pie Chart" width="300" height="222" /></a><p class="wp-caption-text">Day Clicks Pie Chart</p></div>
<div><a class="addthis_button" href="http://blog.ericlamb.net//addthis.com/bookmark.php?v=250" addthis:url='http://blog.ericlamb.net/2009/02/wp-click-tracker-03/' addthis:title='WP-Click-Tracker 0.3 '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/02/wp-click-tracker-03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

