<?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>DamienG &#187; Internet</title>
	<atom:link href="http://damieng.com/blog/category/technology/internet/feed" rel="self" type="application/rss+xml" />
	<link>http://damieng.com</link>
	<description>A .NET developer in Redmond</description>
	<lastBuildDate>Mon, 30 Aug 2010 16:23:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>DHL failure in usability</title>
		<link>http://damieng.com/blog/2008/08/26/dhl-failure-in-usability?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dhl-failure-in-usability</link>
		<comments>http://damieng.com/blog/2008/08/26/dhl-failure-in-usability#comments</comments>
		<pubDate>Tue, 26 Aug 2008 19:26:17 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[shipping]]></category>
		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2008/08/26/dhl-failure-in-usability</guid>
		<description><![CDATA[A couple of weeks ago I ordered the latest third-generation of the DAS Keyboard – my second generation packed away back in Guernsey and the Alps-switched one from DSI incapable of reliably registering more than 2 keys on USB. Being that I’m fixed on the European keyboard layout (our enter key is double height with [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I ordered the latest third-generation of the DAS Keyboard – my second generation packed away back in Guernsey and the Alps-switched one from DSI incapable of reliably registering more than 2 keys on USB.</p>
<p>Being that I’m fixed on the European keyboard layout (our enter key is double height with the backslash moved down next to Z) I had to order from Germany, specifically the guys over at getDigital.de</p>
<p>When the keyboard hadn’t arrived a couple of weeks later I headed off to the tracking link at DHL Germany.</p>
<p>As a customer all I’m interested in is:</p>
<ul>
<li>Where is the package now?</li>
<li>When will I have it?</li>
</ul>
<p>A good developer would understand and deliver this. Instead DHL present:</p>
<table>
<tbody>
<tr>
<td><strong>Piece-number </strong></td>
<td><strong>9507xxxxxxx7</strong></td>
</tr>
<tr>
<td><strong>Addressee: </strong></td>
<td>Item destined for abroad</td>
</tr>
<tr>
<td><strong>Status: </strong></td>
<td>Arrival at inward Office of Exchange in the Country of Destination</td>
</tr>
<tr>
<td><strong>Status from: </strong></td>
<td>19.08.08 17:07</td>
</tr>
<tr>
<td><strong>Process: </strong></td>
<td>Arrival at inward Office of Exchange in the Country of Destination</td>
</tr>
</tbody>
</table>
<p>Everything here screams bad systems, poor understanding and disregard for the customer. They aren’t giving the customer what they want, they’re giving the customer a little of what they have and are not even reinterpreting the data from the customers perspective.</p>
<p>This isn’t untypical but neither of my questions have been answered and the item is over the delivery times so I need to go further. Hitting the contact button next to the “piece-number” takes us to:</p>
<table>
<tbody>
<tr>
<td>For further information, please call us on<br />
<strong>0 18 05-345 22 55</strong> *<br />
(14 cent per minute within german fixed network)<br />
<br />
Business hours:<br />
Monday &#8211; Saturday between 7 a.m. and 10 p.m.<br />
Sundays and public holidays between 9 a.m. and 6 p.m.<br />
<small>* only within Germany</small><br />
<br />
or <a href="http://nolp.dhl.de/contact_email.do?idc=9507xxxxxxx7&amp;rfn=&amp;lang=en&amp;zip=&amp;page=contact_email&amp;status="><strong>per contact form</strong></a> (except for investigation inquiries)<br />
<br />
If your shipment has not arrived at the recipient within 6 days, you have the opportunity to fill out an  <a href="http://www.dhl.de/dhl?tab=1&amp;skin=hi&amp;check=yes&amp;lang=de_EN&amp;xmlFile=3001593"><strong>investigation</strong></a> inquiry dircectly via your PC.</td>
</tr>
</tbody>
</table>
<p>Wow, so the primary point of contact for an international delivery is a number that can only be called from Germany. Useless.</p>
<p>So we can now choose a per-contact form or an investigation form. Okay, let’s go to the investigation form. Let’s try that.</p>
<table>
<tbody>
<tr>
<td>
<h5><strong>The web page you would like to access cannot be viewed at this time.</strong></h5>
<p>We apologize for any inconvenience. Perhaps it is due to a connection problem, perhaps the link is no longer valid or you have directly selected a page that no longer exists in the specified directory</p>
</td>
</tr>
</tbody>
</table>
<p>Wow, DHL Germany really don’t have things under control here. Let’s flip over to DHL’s main site and take it from there.</p>
<p>First of all we need to chose our country, currently Canada… Now let’s enter the reference number we’ve been using on DHL Germany’s web site and “Shipment/Waybill not found”.</p>
<p>Okay, I’m a persistent fellow, let’s give DHL Canada a call and find out what’s going on… I give the reference number to the woman at the other end and “that’s too long”. Hmm, tell her it works on DHL Germany web site, she goes to the web site and tries it out and confirms it does but that it doesn’t work on their system. She tries a few searches on my name, from Germany to Vancouver, nothing, nada, zip and suggests I try contacting DHL Germany or the sender to get a “proper” reference number.</p>
<p>The real icing on the cake of course is the “About DHL” page states:</p>
<blockquote><p>DHL Express offers seamless service worldwide.</p></blockquote>
<p>I can see a very big seam here between Germany and Canada.</p>
<blockquote><p>Expertise around the globe.</p></blockquote>
<p>Not much use when the people with that expertise are sat behind a number you can’t call from outside their country.</p>
<blockquote><p>One world. One express and logistics company.</p></blockquote>
<p>But not one system or tracking mechanism.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2008/08/26/dhl-failure-in-usability/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>DamienG.com rises from the ashes</title>
		<link>http://damieng.com/blog/2008/06/02/damiengcom-rises-from-the-ashes?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=damiengcom-rises-from-the-ashes</link>
		<comments>http://damieng.com/blog/2008/06/02/damiengcom-rises-from-the-ashes#comments</comments>
		<pubDate>Mon, 02 Jun 2008 20:01:25 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[ThePlanet]]></category>

		<guid isPermaLink="false">http://damieng.com/?p=913</guid>
		<description><![CDATA[On Saturday an explosion at ISP ThePlanet took this site offline and it remained like that for 48 hours whilst power and structure were restored to the 4,000+ affected servers. It&#8217;s unfortunate it happened when the site got some DotNetKicks and StumbleUpon love for Envy Code R but at least this isn&#8217;t a commercial venture [...]]]></description>
			<content:encoded><![CDATA[<p>On Saturday an explosion at ISP ThePlanet took this site offline and it remained like that for 48 hours whilst power and structure were restored to the <a href="http://forums.theplanet.com/index.php?s=890720330289c81b7b5acf5105a04906&#038;showtopic=90185">4,000+ affected servers.</a></p>
<p>It&#8217;s unfortunate it happened when the site got some DotNetKicks and StumbleUpon love for Envy Code R but at least this isn&#8217;t a commercial venture losing money to such an incident &#8211; if it was I&#8217;d have a warm standby somewhere else &#8211; something many of ThePlanet&#8217;s commercial customers didn&#8217;t.</p>
<p>If downloads and images aren&#8217;t working for you then you&#8217;ll need to clear your DNS cache which may help the problem depending on the cache at your forwarder. </p>
<pre><code><b>Windows</b> ipconfig /flushdns</code></pre>
<pre><code><b>OS X Tiger</b> lookupd -flushcache </code></pre>
<pre><code><b>OS X Leopard</b> dscacheutil -flushdns</code></pre>
<p>This has skewed the FeedBurner stats so if you&#8217;re new here and take that as any measure of popularity it was 500+ last week :)</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2008/06/02/damiengcom-rises-from-the-ashes/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress 2.5 notes from the field</title>
		<link>http://damieng.com/blog/2008/04/18/wordpress-25-notes-from-the-field?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wordpress-25-notes-from-the-field</link>
		<comments>http://damieng.com/blog/2008/04/18/wordpress-25-notes-from-the-field#comments</comments>
		<pubDate>Fri, 18 Apr 2008 13:59:04 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://damieng.com/?p=904</guid>
		<description><![CDATA[It&#8217;s been a few weeks since I upgraded to WordPress 2.5 and whilst the upgrade went well it hasn&#8217;t been all plain sailing. New and changed Manage files removed The Manage &#62; Files administration function has been silently removed despite still appearing in the on-line documentation. If you don&#8217;t have FTP access this was the [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a few weeks since I upgraded to WordPress 2.5 and whilst the upgrade went well it hasn&#8217;t been all plain sailing.</p>
<h3>New and changed</h3>
<h4>Manage files removed</h4>
<p>The <em>Manage &gt; Files</em> administration function has been silently removed despite still appearing in the <a href="http://codex.wordpress.org/Design_Theme_Editor_SubPanel">on-line documentation</a>.</p>
<p>If you don&#8217;t have FTP access this was the only way to modify your .htaccess and other important files without installing additional software. I can understand such a powerful function could be abused but an option to turn it back on or even a warning about its removal in the upgrade notes/read-me would have been useful.</p>
<p>Hopefully somebody will repackage the old functionality into a plug-in.</p>
<h4>New look administration</h4>
<p>I&#8217;m not sold on the new administration theme look but Dean J Robinson has crafted <a href="http://deanjrobinson.com/projects/fluency-admin/">a plug-in called Fluency</a> that refines the styling.</p>
<p>Generally usability in the administration user interface is better, the write post screen makes a lot more sense and the category &amp; tag management is more logical.</p>
<h4>Auto update plug-ins</h4>
<p>I love this new feature, it shows you when a new version of a plug-in is available and then lets you automatically update. It isn&#8217;t without issue however, specifically it:<br />
<img src="http://images.damieng.com/blog/WordPress25AutoUpdate.png" style="float:right" alt="Screen-shot of WordPress 2.5's automatic plug-in upgrade feature" /></p>
<ol>
<li>overwrites modified local versions without warning</li>
<li>may go wrong (it &#8220;upgraded&#8221; my wp-PostViews to wp-DBManager)</li>
<li>does not provide a roll-back or revert facility</li>
</ol>
<p>Still it&#8217;s a v1 feature and I&#8217;m sure it&#8217;ll get some refinement in 2.6.</p>
<h3>Compatibility</h3>
<h4>Live search broken (Redoable theme)</h4>
<p>The Ajax-enabled live search is broken in <a href="http://deanjrobinson.com/projects/redoable/">Redoable</a> although the normal search works. There have been no signs of an update in quite despite an un-patched <a href="http://secunia.com/advisories/25310/">HTML injection vulnerability</a>.</p>
<h4>Gregarious</h4>
<p>This social bookmarking plug-in is broken in 2.5 and the author is <a href="http://lipidity.com/web/wordpress/wp-plugin-gregarious/">too busy to fix it right now</a> and the search for an alternative led me to Joost and his <a href="http://www.joostdevalk.nl/wordpress/sociable/">Sociable plug-in</a>.</p>
<p>I&#8217;m not 100% happy with the output from Sociable right now but that can wait until my new theme is finished. </p>
<h3>Other tweaks</h3>
<p>These weren&#8217;t caused by the 2.5 upgrade but once you start messing with one thing there&#8217;s always that urge to fix other things you know aren&#8217;t right.</p>
<h4>Google Analytics</h4>
<p>Whilst testing my site I found XHTML compliance was broken. It turns out that Joost&#8217;s <a href="http://www.joostdevalk.nl/wordpress/google-analytics/">Google Analytics for WordPress</a> incorrectly rewrites the hyperlinks when they parent another element such as an image. Putting on my PHP hacking hat I managed to fix it by editing the plug-in and changing the last line of <strong>ga_parse_link</strong> to:</p>
<pre><code><strong>return </strong>'&lt;a '.$matches[1].'href="'.$matches[2].'//' .$matches[3].'"'.' '.$coolBit.$matches[4].'&gt;'.$matches[5].'&lt;/a&gt;';</code></pre>
<h4>Subscriber counts</h4>
<p>My feed subscriber counts have been bugging me for a while as they jump up and down seemingly at random. In fact, it can be traced down to two things:</p>
<ol>
<li>If you base it on less than 5 days of activity you&#8217;ll get the weekend dip<br />Solution: Count 7 days worth of individual subscribers</li>
<li>Google Reader etc. sometimes stop passing the subscriber count from time to time<br />Solution: Use single most recent multi-subscriber header for each service/feed in the last 30 days </li>
</ol>
<p>If you want to do the same you need to edit the Feed Statistics plug-in and change the how_many_subscribers function to:</p>
<pre><code>
$q = "SELECT subscribers, CASE WHEN subscribers = 1 THEN identifier ELSE CONCAT(identifier, feed) END AS ident FROM ".$table_prefix."feed_subscribers  WHERE ((subscribers = 1 AND
	date > '".date("Y-m-d H:i:s", time() - (60 * 60 * 24 * get_option("feed_statistics_expiration_days")))."' ) OR
	(subscribers = 1 AND LOCATE('###',identifier) != 0 AND
	date > '".date("Y-m-d H:i:s", time() - (60 * 60 * 24 * get_option("feed_statistics_expiration_days") * 3))."' ) OR
	(subscribers > 1 AND date > '".date("Y-m-d H:i:s", time() - (60 * 60 * 24 * 30 * 3))."' ) )
	ORDER BY ident ASC, date DESC";
</code></pre>
<p>This should help but it&#8217;s not ideal with individual readers counted more than once if they change IP and groups counted as one if they are sharing an IP/NAT.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2008/04/18/wordpress-25-notes-from-the-field/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Calendar spam, the next nuisance?</title>
		<link>http://damieng.com/blog/2008/04/07/calendar-spam-the-next-nuisance?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=calendar-spam-the-next-nuisance</link>
		<comments>http://damieng.com/blog/2008/04/07/calendar-spam-the-next-nuisance#comments</comments>
		<pubDate>Mon, 07 Apr 2008 20:57:24 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[google calendar]]></category>
		<category><![CDATA[scam]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://damieng.com/?p=900</guid>
		<description><![CDATA[Tomorrow morning at 5am where I can enjoy an advanced fee scam! I&#8217;ve had these in email format before but never in my calendar&#8230; Oddly there are no emails about this in my inbox and I sure didn&#8217;t tell it to add one to my calendar. As there is no &#8216;Report Spam&#8217; link for calendar [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow morning at 5am where I can enjoy an <a href="http://en.wikipedia.org/wiki/Advance_fee_fraud">advanced fee scam</a>! I&#8217;ve had these in email format before but never in my calendar&#8230;</p>
<p><img src="http://images.damieng.com/blog/CalendarSpam.png" alt="Screen-shot of some spam in my calendar" width="645" height="365" /></p>
<p>Oddly there are no emails about this in my inbox and I sure didn&#8217;t tell it to add one to my calendar. As there is no &#8216;Report Spam&#8217; link for calendar entries I had to return to calendar view, delete it from there and hope nothing else shows up.</p>
<p class="new"><a href="http://lifehacker.com/377925/keep-spammers-out-of-your-google-calendar">Digital Inspiration</a> also wrote about this and provide a link to <a href="http://www.google.com/support/calendar/bin/request.py?page=&#038;contact_type=abuse">Google&#8217;s spam reporting page</a>.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2008/04/07/calendar-spam-the-next-nuisance/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Facebook&#8217;s bizarre search algorithm</title>
		<link>http://damieng.com/blog/2008/03/18/facebooks-bizarre-search-algorithm?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=facebooks-bizarre-search-algorithm</link>
		<comments>http://damieng.com/blog/2008/03/18/facebooks-bizarre-search-algorithm#comments</comments>
		<pubDate>Tue, 18 Mar 2008 13:52:23 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[search algorithm]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2008/03/18/facebooks-bizarre-searching-algorithm</guid>
		<description><![CDATA[I&#8217;ve been having some problems trying to locate friends on Facebook and now I know why. Facebook&#8217;s search algorithm is the most bizarre search algorithm known to man. If you know how to spell their name exactly and type it all in lower-case that works fine. As soon as you introduce a capital or partial [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having some problems trying to locate friends on Facebook and now I know why.</p>
<p>Facebook&#8217;s search algorithm is the most bizarre search algorithm known to man.</p>
<p>If you know how to spell their name exactly and type it all in lower-case that works fine. As soon as you introduce a capital or partial then spacing, which letters are capitalised and the length of the match all seem to play their part in the bizarre matching process that never delivers what you would expect although does deliver the same results every time.</p>
<p>I&#8217;ll use my name as an example (~ indicates additional space character):</p>
<h3>Damien Guard / damien guard </h3>
<p>Finds me, two coast guards named Nick Zieser and Patrick Fernandez, a person called Romy Domingo and two groups that match on description.  The other people have nothing in the &#8220;Matches&#8221; field to indicate why they were bought in but not too strange.</p>
<h3>Damie guar</h3>
<p>Finds me, Damien Guarnieri and Kyle Damien Guarco. This one makes sense.</p>
<h3>damien guar / ~damie guar</h3>
<p>Should return same as above but oddly excludes Kyle.</p>
<h3>Damien Guar / damie Guar~ / ~Damie Guard / dami Guard~ / dami guar / dami guard / dami guar</h3>
<p>No matches at all.</p>
<h3>damie guar</h3>
<p>Curiously only Damien Guarnieri. Worrying given that many people search with lower case.</p>
<h3>damie Guar</h3>
<p>Damien Guarnieri and Kyle Damien Guarco only. No sign of me.</p>
<h3>dami gua</h3>
<p>The above two plus Damian La Guardia but still no sign of me or Damian Guard.</p>
<h3>Damie guard / damie guard / damie Guard / Damie Guard / damien Guar / ~damie Guar~</h3>
<p>Just me.</p>
<h3>dam guar</h3>
<p>Finds a Damian Guard in Tulsa but nobody else.</p>
<h3>~dami gua~</h3>
<p>Includes most of the people mentioned here but excludes my partial-namesake Damian Guard.</p>
<h3>Damia Guar</h3>
<p>Finds Damian Guardia and Damian La Guardia which didn&#8217;t show for &#8220;Dami Guar&#8221; yet excludes Damian Guard again.</p>
<p>It&#8217;s likely a case of devs trying to be intelligent and ending up with a usability nightmare but until they get their act together be prepared to try all sorts of combinations for partial matching.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2008/03/18/facebooks-bizarre-search-algorithm/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Access AIM and ICQ via Google Chat</title>
		<link>http://damieng.com/blog/2008/03/18/access-aim-and-icq-via-google-chat?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=access-aim-and-icq-via-google-chat</link>
		<comments>http://damieng.com/blog/2008/03/18/access-aim-and-icq-via-google-chat#comments</comments>
		<pubDate>Tue, 18 Mar 2008 00:25:24 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[aim]]></category>
		<category><![CDATA[google chat]]></category>
		<category><![CDATA[icq]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2008/03/18/access-aim-and-icq-via-google-chat</guid>
		<description><![CDATA[Google just added support for AIM to Google Chat so you can just enter your login details and chat right away from your GMail or Google Apps for Domains account as if they were Google Chat users. Better yet you can actually enter your ICQ number in the user-name box, fill in your password and [...]]]></description>
			<content:encoded><![CDATA[<p>Google just added <a href="https://mail.google.com/support/bin/answer.py?answer=61024">support for AIM to Google Chat</a> so you can just enter your login details and chat right away from your GMail or Google Apps for Domains account as if they were Google Chat users.</p>
<p>Better yet you can actually enter your ICQ number in the user-name box, fill in your password and integrate your ICQ account although this is seemingly undocumented and likely just a result of the ICQ and AIM integration from some time back.</p>
<p>It&#8217;s not as comprehensive as the fantastic Mac-app <a href="http://www.adiumx.com/">Adium</a> or the clever <a href="http://www.meebo.com/">Meebo</a> web-interface and doesn&#8217;t offer support for MSN Messenger like those two but it&#8217;s a great extra tool to have at your disposal when stuck behind a proxy needing to get hold of someone.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2008/03/18/access-aim-and-icq-via-google-chat/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My favourite WordPress plugins</title>
		<link>http://damieng.com/blog/2008/02/11/my-favourite-wordpress-plugins?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=my-favourite-wordpress-plugins</link>
		<comments>http://damieng.com/blog/2008/02/11/my-favourite-wordpress-plugins#comments</comments>
		<pubDate>Mon, 11 Feb 2008 13:54:25 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2008/02/11/my-favourite-wordpress-plugins</guid>
		<description><![CDATA[I&#8217;ve been asked what plugins I recommend for WordPress so here&#8217;s the ones I currently use. Some of them require work in your theme &#8211; I started with the Redoable 1.2 theme which supports many of them. Akismet Probably one of the most well-known plugins for WordPress this little wonder screens all comments for spam [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been asked what plugins I recommend for WordPress so here&#8217;s the ones I currently use. Some of them require work in your theme &#8211; I started with the <a href="http://www.deanjrobinson.com/projects/redoable/">Redoable 1.2 theme</a> which supports many of them.</p>
<h3>Akismet</h3>
<p>Probably one of the most well-known plugins for WordPress this little wonder<br />
screens all comments for spam using the <a href="http://akismet.com/">Akismet</a> web service. Get a key to access the service by signing up for a at <a href="http://wordpress.com">WordPress.com</a> and then configuring it in <em>Plugins &gt; Akismet Configuration</em>.</p>
<h3>Feed Statistics</h3>
<p>I&#8217;m don&#8217;t want my subscribers in the control of a third party but I do like FeedBurner&#8217;s subscriber counts and analysis tools.</p>
<p>The <a href="http://www.chrisfinke.com/wordpress/plugins/feed-statistics/">Feed Statistics</a> plugin provides a small subset of that functionality, the important one being a subscriber count which I now show in the sidebar. I went with a 3 day count configured from the <em>Feed</em>in WordPress admin.</p>
<h3>Google Analytics for WordPress</h3>
<p>There are a bunch of Google Analytics integration plugins out there but <a href="http://www.joostdevalk.nl/wordpress/analytics/">Google Analytics for WordPress</a> apears to be the one currently using Google Analytics New Tracking Code ga.js instead of the old Urchin one. This actually uses a new URL and technique that hopefully won&#8217;t be blocked by so many viewers and also promises access to exciting new features as they become available&#8230;</p>
<h3>Google Reader widget</h3>
<p>I&#8217;m still in love with <a href="http://reader.google.com">Google Reader</a> especially since they added search to it (quite how they forgot that I&#8217;ll never know).  One of the great things is that you can share your stories with your friends or better yet expose it as another RSS.</p>
<p><a href="http://nothingoutoftheordinary.com/2007/05/26/wordpress-google-reader-widget/">Google Reader widget</a> adds a sidebar widget to show the stories you have chosen to share in your sidebar so no need for the annoying link-list posts (unless you need to add opinion or commentary of course). Configurable via <em>Plugins &gt; Google Analytics</em>.</p>
<h3>Gravatars2</h3>
<p>Blog that don&#8217;t allow comments don&#8217;t get onto my Reader list without a fight. Without comments a post can&#8217;t be trusted &#8211; the author isn&#8217;t interested in any other opinions or thoughts. </p>
<p><a href="http://www.gravatar.com">Gravatar</a> is a great site where you can register a picture with your email address so any site implementing Gravatars will show it next to your comments. In no time you&#8217;ll start recognising faces and pictures and decide if you want to check out their blogs too.</p>
<p>The <a href="http://zenpax.com/gravatars2/">Gravatars2 plugin</a> puts those images next to the people who comment on your blog and can helpfully cache them locally for you given permission. It is configured from <em>Options &gt; Gravatars</em> and the cache managed from <em>Manage &gt; Gravatar Cache</em>.</p>
<h3>Gregarious</h3>
<p>Social bookmarking is incredibly popular through sites like Digg, StumbleUpon, Reddit, Delicious, Technorati, Windows Live Favourites or plain old email.</p>
<p><a href="http://dev.lipidity.com/feature/wp-plugin-gregarious">Gregarious</a> takes care of providing links to submit your posts to these sites at the whim of a passing viewer.  You can configure it in <em>Options &gt; Gravatars</em> to choose the sites you want (I added DotNetKicks with a URL of http://www.dotnetkicks.com/kick/?url={url} ) as well as emailing you when a post is dugg and draw those famous little &#8216;n diggs&#8217; yellow buttons.</p>
<h3>Related Posts</h3>
<p>Problogger&#8217;s <a href="http://www.problogger.net/archives/2007/08/04/interlinking-posts/">Darren Rowse recommends interlinking</a> posts to keep readers on your site and interested.</p>
<p><a href="http://wasabi.pbwiki.com/Related%20Entries">Related Posts</a> automatically provides a list of likely related posts &amp; pages based on keyword matching.</p>
<h3>StatPress</h3>
<p>Google Analytics is nice but the stats tend to lag a bit behind and sometimes you want to know what&#8217;s happening right now.</p>
<p>StatPress collects and reveals interesting real-time stats on <em>Dashboard &gt; StatPress</em> including per-day &amp; month counts of visitors, pageviews, spiders and feeds as well as recent hits, search terms and referrers. It also shows some visitor analysis and an interesting spy mode that shows recent visitors path through the site including how they got there.</p>
<p>My only complaints are that the MySQL database grows quite quickly and the analysis pages are slow. This is most likely caused by logging and analysis of raw data.  Still it seems a lot less resource hungry that <a href="http://firestats.cc/">FireStats</a>.</p>
<h3>WP-PostRatings</h3>
<p>An attempt to get quick feedback on what posts people are finding interesting and which aren&#8217;t with a simple star-rating next to each post.</p>
<p>Through no fault of it&#8217;s own <a href="http://www.lesterchan.net/portfolio/programming.php">WP-PostRatings</a> has failed rather miserably here with few people wanting to click a star to rate a post.  Will be dropped in the redesign.</p>
<h3>WP-PostViews</h3>
<p>Another visitor-retention seeking effort. By presenting the most popular content in the sidebar I&#8217;m hoping to entice people to look at a couple of other posts and hit the magic RSS subscribe button.</p>
<p><a href="http://lesterchan.net/portfolio/programming.php">WP-PostViews</a> records the stats and provides a method to get the post stats out you can put into your theme but most importantly comes with a widget to render a sidebar full of your most popular content.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2008/02/11/my-favourite-wordpress-plugins/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Friends Reunited violates own privacy policy to spam users</title>
		<link>http://damieng.com/blog/2007/12/12/friends-reunited-violates-own-privacy-policy?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=friends-reunited-violates-own-privacy-policy</link>
		<comments>http://damieng.com/blog/2007/12/12/friends-reunited-violates-own-privacy-policy#comments</comments>
		<pubDate>Wed, 12 Dec 2007 12:04:23 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/12/12/friend-reunited-violates-own-privacy-policy-to-spam-users</guid>
		<description><![CDATA[Hello Damien You have received this email as a customer of our sister company, Friends Reunited. Stared back at me from my inbox yesterday purporting to be from UK television company ITV. It was curious because I always de-select the marketing option. I visited Friends Reunited site to confirm the option was indeed off which [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Hello Damien<br />
You have received this email as a customer of our sister company, Friends Reunited.</p></blockquote>
<p>Stared back at me from my inbox yesterday purporting to be from <a href="http://news.bbc.co.uk/2/hi/business/4502550.stm">UK television company ITV</a>. It was curious because I always de-select the marketing option. I visited Friends Reunited site to confirm the option was indeed off which it was. More interestingly it stated it would be for their own marketing messages, not third parties which their <a href="http://www.friendsreunited.co.uk/FriendsReunited.ASP?WCI=Privacy">privacy policy</a> clarified:</p>
<blockquote><p>We, and (where relevant) our credit card processing agents, will not supply your personal data to a third party for commercial exploitation &#8211; thus, you can rest assured that we will not sell the lists of our Members&#8217; email addresses to a third party; and</p></blockquote>
<p>Yet here they are doing exactly what they claim not to.</p>
<p>Two subsequent emails to their support team resulted in one stating they have switched my third-party emailing option off (there is no such option, they claim never to do it at all) and when I clarified this for them another stating:</p>
<blockquote><p>All members comments and suggestions are noted and passed onto our management team for consideration.</p></blockquote>
<p>Such blatent disregard for their own policies and European regulation should not be ignored. If you live in the UK and a UK company is spamming you then <a href="http://www.ico.gov.uk/complaints/privacy_and_electronic_communications.aspx">complain to the Information Commissioners Office</a>.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/12/12/friends-reunited-violates-own-privacy-policy/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How dangerous is HTML injection?</title>
		<link>http://damieng.com/blog/2007/12/10/how-dangerous-is-html-injection?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-dangerous-is-html-injection</link>
		<comments>http://damieng.com/blog/2007/12/10/how-dangerous-is-html-injection#comments</comments>
		<pubDate>Mon, 10 Dec 2007 00:45:51 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[HTML-injection]]></category>
		<category><![CDATA[Web-security]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/12/10/how-dangerous-is-html-injection</guid>
		<description><![CDATA[A few years ago I believed that HTML and SQL injection vulnerabilities were headed for extinction. Thanks to object-relational mapping tools SQL injection continues to die but HTML and script injection vulnerabilities are as popular as ever. Part of the problem stems from the &#8220;back-to-basics&#8221; approach to rendering web pages, throwing out classes and controls [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago I believed that HTML and SQL injection vulnerabilities were headed for extinction. Thanks to object-relational mapping tools SQL injection continues to die but HTML and script injection vulnerabilities are as popular as ever.</p>
<p>Part of the problem stems from the &#8220;back-to-basics&#8221; approach to rendering web pages, throwing out classes and controls for  string-based libraries (primitive obsession) and helpers which do not encode HTML or even offer a concise simple syntax to do so.</p>
<p>MonoRail was one such project but they took feedback on board and addressed the issue although I was surprised it had got as far as release candidate 2 with such a serious oversight.</p>
<p>Other projects have been less reactive when advised of the problem and I can&#8217;t help but wonder if I am not getting the severity of the issue across. This isn&#8217;t just an annoyance but a <strong>real security problem</strong>.</p>
<div class="alert">If you are not familiar with:</p>
<ul>
<li>HttpUtility.HtmlEncode (.NET)</li>
<li>Server.HtmlEncode (ASP)</li>
<li>htmlentities/htmlspecialchars (PHP)</li>
<li>html_escape (Rails)</li>
<li>{! } (MonoRail Brail)</li>
</ul>
<p>and your web apps output data then they are <strong>likely open to HTML &amp; script injection vulnerabilities</strong>.</div>
<p>Vulnerable code often looks like this:</p>
<pre><code>myLabel.Text = Request.Form["Something"];
Response.Write(Request.Cookies["AddedProduct"]);
&lt;%= myDataReader[0] %&gt;
&lt;? php echo get_the_title() ?&gt;</code></pre>
<p>For more ASP.NET examples check out <a href="http://damieng.com/blog/2007/12/18/5-signs-your-aspnet-application-may-be-vulnerable-to-html-injection">5 signs your ASP.NET application may be vulnerable to HTML injection</a>.</p>
<p>Let&#8217;s start by considering the actors involved:</p>
<h3>Visitor to visitor</h3>
<p>If your site stores input from an external user (visitor) and displays it to another then you could be exposed to this scenario. Many sites do this although it is not always immediately recognised &#8211; an internet banking site does not seem an obvious candidate until you consider that you may put a textual reference on payments made to another person. If you know they use a vulnerable internet banking solution&#8230;</p>
<p>A worst-case scenario here would be that one visitor could steal another&#8217;s login credentials and exploit whatever rights that might give him &#8211; anything from posting messages to stealing funds.</p>
<h3>Visitor to staff</h3>
<p>Not all sites exchange data between users but if your site collects information from visitors chances are it presents this information to staff. Internal systems used to examine it are often considered less vulnerable which is a mistake. Remember *all* data provided from a user should be considered to be a potential avenue for a dangerous payload, e.g. even the language-accepts or user-agent strings.</p>
<p>When exploited internal systems can reveal information in bulk about the users, the system and the administration accounts used to manage it. Gaining access to these details brings all the privileges those accounts have to offer which can be catastrophic.</p>
<h3>Staff to visitor</h3>
<p>It is easy to forget that many frauds are perpetuated by people on the inside. A staff member given the ability to present text to the user via a website has the ability to modify any page that the content is presented on which if it includes a login page (perhaps for system status messages) then capturing login details to a server of their own choice is easy.</p>
<p>Security operators with access to reset (but not view) passwords would find this attack particularly enticing given that they do not need to reset the users account and therefore raise any awareness. An insider can perpetuated the fraud and may be in a position to further conceal it within the organisation.</p>
<h3>Next steps?</h3>
<p>I can envisage a sequence of steps that start with discovery of injectable systems through detection of script-enabled into form capture-and-forward and async logging of passwords through XmlHttp.</p>
<p>Detailing those steps would certainly raise awareness and help developers appreciate the severity of the issue but how do I make sure that information isn&#8217;t abused?</p>
<p>Disclosure is a double-edged sword but then you can&#8217;t have <a href="http://en.wikipedia.org/wiki/Security_through_obscurity">security through obscurity</a>&#8230; I wonder how many crackers/black hackers already utilise these techniques for nefarious means.</p>
<p class="information">.NET developers might like to check out the <a href="http://damieng.com/blog/2007/08/16/gsdf-august-2007-postmortem">slides from the Web Application Security talk</a> I gave at the <a href="http://www.developers.org.gg/">Guernsey Software Developer Forum</a> which demonstrates exploitable, exploits and safe alternatives for preventing HTML and SQL injection.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/12/10/how-dangerous-is-html-injection/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Free software projects need a pitch</title>
		<link>http://damieng.com/blog/2007/12/03/free-software-projects-need-a-pitch?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=free-software-projects-need-a-pitch</link>
		<comments>http://damieng.com/blog/2007/12/03/free-software-projects-need-a-pitch#comments</comments>
		<pubDate>Mon, 03 Dec 2007 08:09:57 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/12/03/free-software-projects-need-a-pitch</guid>
		<description><![CDATA[Open source and free software projects still have much to learn from commercial software, the number one in my book being &#8220;the pitch&#8221;. Most free software project home pages consist of a brief description, a list of technical documents and a number of download options but fail to pitch their solution at all. Today I [...]]]></description>
			<content:encoded><![CDATA[<p>Open source and free software projects still have much to learn from commercial software, the number one in my book being &#8220;the pitch&#8221;.</p>
<p>Most free software project home pages consist of a brief description, a list of technical documents and a number of download options but fail to pitch their solution at all.</p>
<p>Today I found myself at the home page for <a href="http://www.selenic.com/mercurial/">Mercurial</a> which describes itself as</p>
<blockquote><p>a fast, lightweight Source Control Management system designed for efficient handling of very large distributed projects</p></blockquote>
<p>The site fails to persuade me to use or even evaluate their product. They present no argument for using their product over non-distributed systems such as Subversion nor why I should choose their product over distributed systems such as Git (which has associations with Linus and Google).</p>
<p>Contrasting that experience to the home page for <a href="http://www.perforce.com/">Perforce</a>, a commercial (non-distributed) product for source control management, we see:</p>
<ul>
<li>&#8220;Why Perforce&#8221; &#8211; the 10 minute pitch that covers their unique aspects such as performance, high-availability databases</li>
<li>A quote from customer Clive Maxfield at iDesign pointing out that Perforce handles more than just source code (binary files &amp; assets)</li>
<li>Videos showing Perforce in operation so you can see how the product works (and learn it at the same time)</li>
<li>Links to comparisons with ClearCase (commercial offering) and Subversion (popular free software offering)</li>
</ul>
<p>Just because your software carries a $0 price tag doesn&#8217;t mean it will sell itself.  Evaluating software takes time and effort which could mean another open source or commercial software is chosen because either it works out cheaper or made a better case for its selection.</p>
<p>When a project isn&#8217;t interested in new users that signals it could be a &#8220;pet-project&#8221; written for the challenge and not to address a real need not met by existing solutions. Until these projects reach a certain level of maturity, and some never do, users can expect to take a back seat in an uncomfortable ride.</p>
<p>So if your project wants users, pitch it.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/12/03/free-software-projects-need-a-pitch/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Goodbye BlogRush</title>
		<link>http://damieng.com/blog/2007/11/22/goodbye-blogrush?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=goodbye-blogrush</link>
		<comments>http://damieng.com/blog/2007/11/22/goodbye-blogrush#comments</comments>
		<pubDate>Thu, 22 Nov 2007 02:13:20 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[blogrush]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/11/22/goodbye-blogrush</guid>
		<description><![CDATA[I&#8217;ve now given up on BlogRush and removed the widget. My dashboard shows that in the last 30 days I have directly earned 66,691 credits (made that number of impressions) and have been awarded 11,502 bonus credits and 3,473 referrer credits. In return BlogRush have imprinted my last 12 blog posts (actually 11, one repeated, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve now given up on BlogRush and removed the widget.</p>
<p>My dashboard shows that in the last 30 days I have directly earned 66,691 credits (made that number of impressions) and have been awarded 11,502 bonus credits and 3,473 referrer credits.</p>
<p>In return BlogRush have imprinted my last 12 blog posts (actually 11, one repeated, see below) and have sent a whole 15 visitors my way&#8230; that&#8217;s 1 visitor per 4,400 impressions which is mediocre by any measure. I get more hits than that in a month from leaving a couple of off-the-cuff comments on blog posts I&#8217;ve read elsewhere.</p>
<p>Apart from the mediocre conversions, some of the other problems include:</p>
<h3>Uncontrolled spending of credits</h3>
<p>BlogRush highly favours publicising the most recent articles regardless of hotness.</p>
<p>In my case it keeps putting out the <a href="http://damieng.com/blog/2007/11/19/more-silk-icons-silk-companion-1">More Silk Icons</a> post despite only having 3 visitors for the 12,832 impressions whilst the older article on <a href="http://damieng.com/blog/2007/11/04/object-initializers-in-net-35">object initializers</a> hasn&#8217;t got any new impressions despite getting 1 visitor for just 301 impressions.</p>
<p>If you have a glut of credits from a successful peak and you would rather hold on to your credits for the next post&#8230;well, tough, you can&#8217;t.</p>
<p>This forces you to change your posting schedule to meet your BlogRush credit balance.</p>
<h3>Random capitalisation of post titles</h3>
<p>It seems that BlogRush randomly changes the case of titles. Some examples include:</p>
<ul>
<li>Calculating CRC-64 in C# and .NET &gt; Calculating Crc-64 In C# And .net</li>
<li>AnkhSVN (Visual Studio Subversion integration) on Vista &gt; AnkhSVN (visual Studio Subversion Integration) On Vista</li>
<li>Droid font family courtesy of Google &amp; Ascender &gt; Droid Font Family Courtesy Of Google &amp; Ascender</li>
<li>Show Package Contents in Mac OS X &gt; Show Package Contents In Mac Os X</li>
<li>SQL Server replication blocking on clean-up job &gt; Sql Server Replication Blocking On Cleanup Job</li>
<li>Dissecting a C# Application &#8211; Inside SharpDevelop &gt; Dissecting A C# Application &#8211; Inside Sharpdevelop</li>
</ul>
<p>There seems to be no pattern behind it at all.</p>
<h3>Duplication and random ignorance of content</h3>
<p>My incredibly popular Droid Sans Mono great coding font post (42,000 hits in a week) doesn&#8217;t turn up on my BlogRush list at all.</p>
<p>Conversely my SQL Server replication article is treated as two different articles as I revised the title/URL.</p>
<h3>Poor matching of content</h3>
<p>Whilst they have introduced more specific categories my blog continued to show very unrelated posts &#8211; the whole simple categorisation system just doesn&#8217;t work especially when half the people haven&#8217;t revised from the more generic categories not have had any reminder or deadline to do so.</p>
<p>Something that worked off a posts tags would have been much better.</p>
<h3>Filling the space</h3>
<p>For now Google&#8217;s AdSense is taking the place rendering text adverts although for the default landing page it has no content for me. This apparently occurs if you are:</p>
<ul>
<li>Not indexed (definitely am, check out Google&#8217;s searches)</li>
<li>Serving certain unspecified bad-words (every individual article gets adverts so not that)</li>
<li>Nothing in your geographical region (see above)</li>
</ul>
<p>I can only imagine the combination of words across certain posts when presented on the same page is hitting some magical figure. I hope talking about AdSense doesn&#8217;t mess it up further!</p>
<p>I doubt this widget will last very long &#8211; last time it was on for 3 months and earned me a whopping $9.</p>
<p>Ideally the site would move somewhere that can take being hit by the front page of DaringFireball again &#8211; that&#8217;s twice the sudden influx of users has knocked the site off. The first time my <a href="http://damieng.com/blog/2007/08/21/apology-for-the-odd-theme-and-sluggish-speed">home DSL couldn&#8217;t take the strain</a>, this time <a href="http://www.uhhosting.co.uk/home/">UHHosting</a> kindly switched my site offoff for a couple of hours because I was &#8220;using too much CPU&#8221; &#8211; I have only WordPress, MySQL and a bunch of plug-in&#8217;s installed of which I have temporarily sacrificed FireStats, StatsPress and Gravatar2 at the sysop alter in order to keep my home online.</p>
<p>I have been toying with either renting a dedicated 1U server or co-locating one I buy. The latter was more tempting until I discovered that you only get 0.5 amps which is 120W for a whole server which means mirrored disks and a Core 2 chip are out&#8230;</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/11/22/goodbye-blogrush/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Windows Live Writer on Windows x64</title>
		<link>http://damieng.com/blog/2007/11/08/windows-live-writer-on-windows-x64?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=windows-live-writer-on-windows-x64</link>
		<comments>http://damieng.com/blog/2007/11/08/windows-live-writer-on-windows-x64#comments</comments>
		<pubDate>Thu, 08 Nov 2007 21:42:58 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[live writer]]></category>
		<category><![CDATA[windows x64]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/11/08/windows-live-writer-on-windows-x64</guid>
		<description><![CDATA[This article is now out of date and a x64 compatible installer can be found at the Windows Live! Writer home page. Windows Live Writer has finally been released but refuses to install on Windows x64 (64-bit) despite the promises made in the release notes of the previous beta. In fact it has an incredibly [...]]]></description>
			<content:encoded><![CDATA[<div class="new">This article is now out of date and a x64 compatible installer can be found at the <a href="http://windowslivewriter.spaces.live.com/">Windows Live! Writer home page</a>.</div>
<p>Windows Live Writer has finally been released but refuses to install on Windows x64 (64-bit) despite the promises made in the release notes of the previous beta. In fact it has an <a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2007/11/08/is-the-software-installer.aspx">incredibly confusing installer</a>.</p>
<p>This is especially annoying considering it&#8217;s such a great tool and that the new version finally supports a UK spell checker.</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/11/08/windows-live-writer-on-windows-x64/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Disappointing start to BlogRush</title>
		<link>http://damieng.com/blog/2007/10/16/disappointing-start-to-blogrush?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=disappointing-start-to-blogrush</link>
		<comments>http://damieng.com/blog/2007/10/16/disappointing-start-to-blogrush#comments</comments>
		<pubDate>Tue, 16 Oct 2007 17:55:41 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[blogrush]]></category>
		<category><![CDATA[statpress]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/10/16/disappointing-start-to-blogrush</guid>
		<description><![CDATA[BlogRush has now launched phase 2 and it looks much better! Like many bloggers I recently added the BlogRush widget to my site. The idea is simple: Register at BlogRush (it&#8217;s free) Add the JavaScript widget code (Get Code) This will then: Present visitors to your site with 5 links to other blogs per impression [...]]]></description>
			<content:encoded><![CDATA[<p class="new"><a href="http://www.blogrush.com/r95323573">BlogRush</a> has now launched phase 2 and it looks much better!</p>
<p>Like many bloggers I recently added the BlogRush widget to my site. The idea is simple:
<ul>
<li><a href="http://www.blogrush.com/r95323573">Register at BlogRush</a> (it&#8217;s free)</li>
<li>Add the JavaScript widget code (Get Code)</li>
</ul>
<p>This will then:
<ul>
<li>Present visitors to your site with 5 links to other blogs per impression</li>
<li>For every widget impression yours will be shown somewhere too</li>
</ul>
<p>The problems started with the dashboard which was basic, then slowed to a crawl then finally gave minimal information and an assurance that a great replacement was on the way. That replacement was scheduled for &#8216;this week&#8217; last Monday and not a word except:<br />
<blockquote><a href="http://www.income.com/blog/2007/10/08/blogrush-phase-2/"><strong>This is a MAJOR update.</strong> The service is not even 30 days old, yet we’re about to release more changes than most Internet start-ups do in their first 6 months.</a></p></blockquote>
<p>Or put more succinctly <em>the service is almost 30 days old and you still can&#8217;t see if we&#8217;re doing what we promised.</em><a href="http://analytics.google.com">Google Analytics</a> can track referrers and all go via <a href="http://widget.blogrush.com">widget.blogrush.com</a> (you can&#8217;t tell which Blog sent a browser your way) and I&#8217;ve had 2 referrals out of 3,50 in the last 30 days putting it 112th in my referrer league.  Analytics also tells me my site has had 11,800 impressions in that time although curiously <a href="http://wordpress.org/extend/plugins/statpress/">StatPress</a> informs me it is about 3-5 times this.Either way it&#8217;s rather disappointing on both fronts. It goes to prove that a great idea needs a great implementation which reminds me of <a href="http://damieng.com/blog/2006/09/19/rojo-how-not-to-publish-updates-to-your-site">Rojo&#8217;s failed roll outs</a> which led me to switch to the then-inferior <a href="http://reader.google.com">Google Reader</a> which is now much more successful.I wonder if many people are blocking analytics.google.com. Does anyone else have such a large disparity between log/hits and Analytics? I thought it might be feed readers or crawlers but StatPress  lists those individually.<em>[)amien </em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/10/16/disappointing-start-to-blogrush/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>List of Guernsey Estate Agents</title>
		<link>http://damieng.com/blog/2007/09/29/list-of-guernsey-estate-agents?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=list-of-guernsey-estate-agents</link>
		<comments>http://damieng.com/blog/2007/09/29/list-of-guernsey-estate-agents#comments</comments>
		<pubDate>Sat, 29 Sep 2007 17:04:43 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Guernsey]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[guernsey estate agents]]></category>
		<category><![CDATA[homes]]></category>
		<category><![CDATA[housing]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/09/29/list-of-guernsey-estate-agents</guid>
		<description><![CDATA[I&#8217;ve posted my list of Guernsey Estate Agents as other on-line lists were not comprehensive and prevented bookmarking or copying the address to send to others thanks to the annoying framing they used (so 90&#8242;s). Yes, I&#8217;m house-hunting again after my estate agent failed to mention (claimed to be ignorant of the fact) that all [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve posted my <a href="http://damieng.com/creative/writing/guernsey-estate-agents">list of Guernsey Estate Agents</a> as other on-line lists were not comprehensive and prevented bookmarking or copying the address to send to others thanks to the annoying framing they used (so 90&#8242;s).</p>
<p>Yes, I&#8217;m house-hunting again after my estate agent failed to mention (claimed to be ignorant of the fact) that all the lovely fields and views from my proposed home were already marked as a target housing area by the States of Guernsey as part of their <a href="http://http://www.gov.gg/ccm/cms-service/download/asset/?asset_id=369054">Urban Area Plan (PDF, 5Mb)</a>.</p>
<p>These sites were set in 2002 and number just five. I wonder how long these people would last in IT if they took such an active disinterest in their field?</p>
<p><em>[)amien</em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/09/29/list-of-guernsey-estate-agents/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Notes on the move to WordPress</title>
		<link>http://damieng.com/blog/2007/09/04/notes-on-the-move-to-wordpress?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=notes-on-the-move-to-wordpress</link>
		<comments>http://damieng.com/blog/2007/09/04/notes-on-the-move-to-wordpress#comments</comments>
		<pubDate>Tue, 04 Sep 2007 10:35:34 +0000</pubDate>
		<dc:creator>Damien Guard</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[subtext]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://damieng.com/blog/2007/09/04/notes-on-the-move-to-wordpress</guid>
		<description><![CDATA[The change to WordPress from Subtext went without major hitch. This was great considering I was tweaking the design and articles right up to going on holiday (I wouldn&#8217;t do this in a professional environment but my blog is a sandpit for such dare-devil risk taking ;-) Here are my notes on the experience. Spam [...]]]></description>
			<content:encoded><![CDATA[<p>The change to WordPress from Subtext went without major hitch. This was great considering I was tweaking the design and articles right up to going on holiday (I wouldn&#8217;t do this in a professional environment but my blog is a sandpit for such dare-devil risk taking ;-)</p>
<p>Here are my notes on the experience.</p>
<h3>Spam</h3>
<p>Akismet is good but I prefer the invisible captcha that Subtext was using. I&#8217;ve gone from dealing with 1 rogue spam a month to 1-2 held for moderation a day.</p>
<h3>View counts</h3>
<p>The WordPress import format doesn&#8217;t deal with view counts. I wrote a query against Subtext to list them, a query in MySQL to identify article numbers then manually executed</p>
<pre><code>UPDATE post_meta SET meta_value = meta_value + 123 WHERE meta_key = 'views' AND article_id = 456</code></pre>
<p>For every article replacing 123 with Subtext&#8217;s view count and 456 with the WordPress article id. As my blog was previously on Blogger.com which doesn&#8217;t provide view counts they are a year or so lower than reality.</p>
<h3>Preserving links</h3>
<p>I chose a custom permalink format of /blog/%year%/%monthnum%/%day%/%postname% which gives http://damieng.com/blog/2007/10/01/first-of-october for posts. This is similar to the old format of http://www.damieng.com/blog/2007/10/01/first-of-october.aspx but obviously has the file extension and www dropped. Apache&#8217;s .htaccess file made redirecting the old links a breeze which was important to me as my blog suffered big drops in Technorati and Google when I last moved from Blogger.com to Subtext. The required lines to achieve this, redirect /blog/ and keep the RSS going were:</p>
<pre><code>RedirectMatch permanent ^/blog/archive/(.*).aspx$ http://damieng.com/blog/$1
RedirectMatch permanent ^/blog/$ http://damieng.com/
RedirectMatch permanent ^/blog$ http://damieng.com/
RedirectMatch permanent ^/blog/rss.aspx http://damieng.com/feed
RedirectMatch permanent ^/blog/Rss.aspx http://damieng.com/feed</code></pre>
<h3>Editing</h3>
<p>The default editor is fast and for the most part okay although it lacks the ability to change from the default paragraph tag to headings, preformatted blocks, blockquotes etc. It also very annoyingly tries to be helpful by turning carriage returns into new paragraphs which would be fine if it was clever enough to leave &lt;pre&gt; blocks well alone.</p>
<p><a href="http://www.stevestreeting.com/">Steve</a> suggested <a href="http://www.deanlee.cn/wordpress/fckeditor-for-wordpress-plugin/">FCKeditor</a> which is very slow at initialising on my machine and also tends to really mess up my HTML :(</p>
<h3>Going forward</h3>
<p>There are still a number of things I want to do including further deviating from the <a href="http://deanjrobinson.com/wordpress/redoable">Redoable</a> theme. Lightening up the look somewhat perhaps with some soft gradients and alternative typefaces will go a long-way. I&#8217;ll also want to do a proper logo at some point as soon as I can decide what it should look like.</p>
<p>Being that WordPress is a higher visibility target <a href="http://www.phrixus.co.uk/">Phrixus</a> suggested <a href="http://www.michiknows.com/2007/02/12/who-else-wants-to-hide-their-wordpress-admin-folder/">hiding the wp-admin directory</a> as an extra level of protection against automated vulnerability/brute-force attacks which I shall also try.</p>
<p>I need to speak to <a href="http://www.gringod.com">GrinGod </a>about the download counting mechanism he mentioned too.</p>
<p>The original Blogger.com content from a year or two ago will be phased out/removed as it would appear it dilutes my page rank having almost-identical content elsewhere not to mention messing up traffic stats etc.</p>
<p><em><a href="http://technorati.com/claim/wys6itirxr" rel="me">[)amien</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://damieng.com/blog/2007/09/04/notes-on-the-move-to-wordpress/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
