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

<channel>
	<title>FeedSandwich</title>
	<atom:link href="http://feedsandwich.com/feed" rel="self" type="application/rss+xml" />
	<link>http://feedsandwich.com</link>
	<description>...</description>
	<pubDate>Tue, 23 Jun 2009 12:38:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Face detection with PHP</title>
		<link>http://feedsandwich.com/2009/06/23/face-detection-with-php.html</link>
		<comments>http://feedsandwich.com/2009/06/23/face-detection-with-php.html#comments</comments>
		<pubDate>Tue, 23 Jun 2009 12:38:04 +0000</pubDate>
		<dc:creator>Russell</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

		<guid isPermaLink="false">http://feedsandwich.com/?p=91</guid>
		<description><![CDATA[Maurice Svay has written a pure PHP face recognition script - its quite cool!]]></description>
			<content:encoded><![CDATA[<p><a href="http://svay.com/">Maurice Svay</a> has ported a Javascript / Canvas face recognition impelementation into pure PHP, which is cool! Its rather slow, but works without any external programs - well apart from the PHP GD module. You can find the orginal Javascript version is <a href="http://blog.kpicturebooth.com/?p=8">here</a>.</p>
<p>Check out the code here:</p>
<p><a href="http://svay.com/blog/index/post/2009/06/19/Face-detection-in-pure-PHP-(without-OpenCV)">http://svay.com/blog/index/post/2009/06/19/Face-detection-in-pure-PHP-(without-OpenCV)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://feedsandwich.com/2009/06/23/face-detection-with-php.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Amazon EC2 EBS Initial Benchmarks</title>
		<link>http://feedsandwich.com/2009/06/22/amazon-ec2-ebs-initial-benchmarks.html</link>
		<comments>http://feedsandwich.com/2009/06/22/amazon-ec2-ebs-initial-benchmarks.html#comments</comments>
		<pubDate>Mon, 22 Jun 2009 11:46:33 +0000</pubDate>
		<dc:creator>Russell</dc:creator>
		
		<category><![CDATA[Amazon AWS]]></category>

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

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

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

		<guid isPermaLink="false">http://feedsandwich.com/?p=3</guid>
		<description><![CDATA[Now that Amazon EBS, or Elastic Block Store is publicly available, a lot of people are probably interested in some benchmarks!
The setup;

m1.small instance
alestic/debian-5.0-lenny-base-20080803.manifest.xml

All that was installed was mdadm &#38; bonnie++.
Single disc performance
Mounting a single 1gb EBS volume to /dev/sdd,
128k block
dd if=/dev/zero of=/dev/sdd bs=128k
dd: writing `/dev/sdd': No space left on device
8193+0 records in
8192+0 records out
1073741824 bytes [...]]]></description>
			<content:encoded><![CDATA[<p>Now that Amazon EBS, or Elastic Block Store is publicly available, a lot of people are probably interested in some benchmarks!</p>
<p>The setup;</p>
<ul>
<li>m1.small instance</li>
<li>alestic/debian-5.0-lenny-base-20080803.manifest.xml</li>
</ul>
<p>All that was installed was mdadm &amp; bonnie++.</p>
<h2>Single disc performance</h2>
<p>Mounting a single 1gb EBS volume to /dev/sdd,</p>
<h3>128k block</h3>
<pre>dd if=/dev/zero of=/dev/sdd bs=128k</pre>
<pre>dd: writing `/dev/sdd': No space left on device
8193+0 records in
8192+0 records out
1073741824 bytes (1.1 GB) copied, 16.9026 s, 63.5 MB/s</pre>
<h3>256k block</h3>
<pre>dd if=/dev/zero of=/dev/sdd bs=256k</pre>
<pre>dd: writing `/dev/sdd': No space left on device
4097+0 records in
4096+0 records out
1073741824 bytes (1.1 GB) copied, 16.7213 s, 64.2 MB/s</pre>
<h3>512k block</h3>
<pre>dd if=/dev/zero of=/dev/sdd bs=512k</pre>
<pre>dd: writing `/dev/sdd': No space left on device
2049+0 records in
2048+0 records out
1073741824 bytes (1.1 GB) copied, 16.5371 s, 64.9 MB/s</pre>
<h3>1M block</h3>
<pre>dd if=/dev/zero of=/dev/sdd bs=1M</pre>
<pre>dd: writing `/dev/sdd': No space left on device
1025+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 16.9271 s, 63.4 MB/s</pre>
<h2>Testing mdadm performance with 2 EBS volumes, RAID 0 (Striped)</h2>
<p>I attached another 1gb disc, /dev/sde, and then created a new md device.</p>
<pre>mdadm --create /dev/md0 --level=0 -n 2 /dev/sd[d-e]</pre>
<p>Repeating the above tests - obviously this is now over 2gb of disc;</p>
<h3>128k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=128k</pre>
<pre>dd: writing `/dev/md0': No space left on device
16384+0 records in
16383+0 records out
2147352576 bytes (2.1 GB) copied, 22.8826 s, 93.8 MB/s</pre>
<h3>256k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=256k</pre>
<pre>dd: writing `/dev/md0': No space left on device
8192+0 records in
8191+0 records out
2147352576 bytes (2.1 GB) copied, 22.2414 s, 96.5 MB/s</pre>
<h3>512k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=512k</pre>
<pre>dd: writing `/dev/md0': No space left on device
4096+0 records in
4095+0 records out
2147352576 bytes (2.1 GB) copied, 21.7883 s, 98.6 MB/s</pre>
<h3>1M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=1M</pre>
<pre>dd: writing `/dev/md0': No space left on device
2048+0 records in
2047+0 records out
2147352576 bytes (2.1 GB) copied, 20.9595 s, 102 MB/s</pre>
<h3>2M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=2M</pre>
<pre>dd: writing `/dev/md0': No space left on device
1024+0 records in
1023+0 records out
2147352576 bytes (2.1 GB) copied, 21.9773 s, 97.7 MB/s</pre>
<h2>Testing mdadm performance with 3 EBS volumes, RAID 0 (Striped)</h2>
<p>I attached another 1gb disc, /dev/sdf, and then stopped md0 and replaced it with a new md device.</p>
<pre>mdadm -S /dev/md0
mdadm --zero-superblock /dev/sd[d-e]
mdadm --create /dev/md0 --level=0 -n 3 /dev/sd[d-f]</pre>
<p>Repeating the above tests - obviously this is now over 3gb of disc;</p>
<h3>128k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=128k</pre>
<pre>dd: writing `/dev/md0': No space left on device
24575+0 records in
24574+0 records out
3221028864 bytes (3.2 GB) copied, 30.4635 s, 106 MB/s</pre>
<h3>256k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=256k</pre>
<pre>dd: writing `/dev/md0': No space left on device
12288+0 records in
12287+0 records out
3221028864 bytes (3.2 GB) copied, 30.0373 s, 107 MB/s</pre>
<h3>512k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=512k</pre>
<pre>dd: writing `/dev/md0': No space left on device
6144+0 records in
6143+0 records out
3221028864 bytes (3.2 GB) copied, 29.601 s, 109 MB/s</pre>
<h3>1M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=1M</pre>
<pre>dd: writing `/dev/md0': No space left on device
3072+0 records in
3071+0 records out
3221028864 bytes (3.2 GB) copied, 30.083 s, 107 MB/s</pre>
<h3>2M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=2M</pre>
<pre>dd: writing `/dev/md0': No space left on device
1536+0 records in
1535+0 records out
3221028864 bytes (3.2 GB) copied, 29.4059 s, 110 MB/s</pre>
<h2>Testing mdadm performance with 3 EBS volumes, RAID 5</h2>
<p>Time to test with some redundancy, so I stopped md0 and replaced it with a new md device as follows;</p>
<pre>mdadm -S /dev/md0
mdadm --zero-superblock /dev/sd[d-f]
mdadm --create /dev/md0 --level=5 -n 3 /dev/sd[d-f]</pre>
<p>After waiting for the resync to finish (which took about 2 minutes), I repeated the above tests - obviously this is now over 2gb-ish of disc;</p>
<h3>128k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=128k</pre>
<pre>dd: writing `/dev/md0': No space left on device
16384+0 records in
16383+0 records out
2147352576 bytes (2.1 GB) copied, 39.8346 s, 53.9 MB/s</pre>
<h3>256k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=256k</pre>
<pre>dd: writing `/dev/md0': No space left on device
8192+0 records in
8191+0 records out
2147352576 bytes (2.1 GB) copied, 36.197 s, 59.3 MB/s</pre>
<h3>512k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=512k</pre>
<pre>dd: writing `/dev/md0': No space left on device
4096+0 records in
4095+0 records out
2147352576 bytes (2.1 GB) copied, 35.9269 s, 59.8 MB/s</pre>
<h3>1M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=1M</pre>
<pre>dd: writing `/dev/md0': No space left on device
2048+0 records in
2047+0 records out
2147352576 bytes (2.1 GB) copied, 35.9784 s, 59.7 MB/s</pre>
<h3>2M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=2M</pre>
<pre>dd: writing `/dev/md0': No space left on device
1024+0 records in
1023+0 records out
2147352576 bytes (2.1 GB) copied, 36.8876 s, 58.2 MB/s</pre>
<h2>Testing mdadm performance with 3 EBS volumes, RAID 10 F2</h2>
<pre>mdadm -S /dev/md0
mdadm --zero-superblock /dev/sd[d-f]
mdadm --create /dev/md0 -n 3 --level=10 --layout=f2 /dev/sd[d-f]</pre>
<p>After waiting for the resync to finish (which took about 2 minutes), I repeated the above tests - obviously this is now over 2gb-ish of disc;</p>
<h3>128k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=128k</pre>
<pre>dd: writing `/dev/md0': No space left on device
12287+0 records in
12286+0 records out
1610416128 bytes (1.6 GB) copied, 30.449 s, 52.9 MB/s</pre>
<h3>256k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=256k</pre>
<pre>dd: writing `/dev/md0': No space left on device
6144+0 records in
6143+0 records out
1610416128 bytes (1.6 GB) copied, 29.9024 s, 53.9 MB/s</pre>
<h3>512k block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=512k</pre>
<pre>dd: writing `/dev/md0': No space left on device
3072+0 records in
3071+0 records out
1610416128 bytes (1.6 GB) copied, 30.4268 s, 52.9 MB/s</pre>
<h3>1M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=1M</pre>
<pre>dd: writing `/dev/md0': No space left on device
1536+0 records in
1535+0 records out
1610416128 bytes (1.6 GB) copied, 29.5757 s, 54.5 MB/s</pre>
<h3>2M block</h3>
<pre>dd if=/dev/zero of=/dev/md0 bs=2M</pre>
<pre>dd: writing `/dev/md0': No space left on device
768+0 records in
767+0 records out
1610416128 bytes (1.6 GB) copied, 31.57 s, 51.0 MB/s</pre>
<h1>Conclusion</h1>
<p>It seems that using RAID does have its advantages over a single disc, even on EBS. However, I would have expected RAID 10 F2 to have similar performance to RAID 0, rather than the results seen.</p>
<p>I will retest soon with some other benchmarks, and configurations with more Volumes!</p>
<p>Russell</p>
]]></content:encoded>
			<wfw:commentRss>http://feedsandwich.com/2009/06/22/amazon-ec2-ebs-initial-benchmarks.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Rant: HeartInternet - .co.uk domains from only 9p</title>
		<link>http://feedsandwich.com/2009/01/22/rant-heartinternet-couk-domains-from-only-9p.html</link>
		<comments>http://feedsandwich.com/2009/01/22/rant-heartinternet-couk-domains-from-only-9p.html#comments</comments>
		<pubDate>Thu, 22 Jan 2009 17:44:05 +0000</pubDate>
		<dc:creator>Russell</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

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

		<guid isPermaLink="false">http://feedsandwich.com/?p=59</guid>
		<description><![CDATA[9p for a .co.uk domain - seems like a bargin, too good to be true...there must be some catch...?]]></description>
			<content:encoded><![CDATA[<p>Seems like a bargin, too good to be true&#8230;there must be some catch&#8230;?</p>
<div id="attachment_61" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.heartinternet.co.uk/domains-d.shtml" target="_blank"><img class="size-medium wp-image-61  " style="border: 1px solid black;" title="2009-01-22_1719" src="http://feedsandwich.com/wp-content/uploads/2009/01/2009-01-22_1719-300x220.png" alt="2009-01-22_1719" width="300" height="220" /></a><p class="wp-caption-text">.co.uk domains from only 9p</p></div>
<p> </p>
<p>It seems there is: you can&#8217;t actually buy a .co.uk for 9p. At all:</p>
<div id="attachment_62" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.heartinternet.co.uk/prices-d.shtml" target="_blank"><img class="size-medium wp-image-62  " style="border: 1px solid black;" title="2009-01-22_1720" src="http://feedsandwich.com/wp-content/uploads/2009/01/2009-01-22_1720-300x201.png" alt="2009-01-22_1720" width="300" height="201" /></a><p class="wp-caption-text">...but not here</p></div>
<p> </p>
<div id="attachment_69" class="wp-caption aligncenter" style="width: 242px"><a href="https://customer.heartinternet.co.uk/manage/domain_credits.cgi" target="_blank"><img class="size-medium wp-image-69 " style="border: 1px solid black;" title="Domain credits...not here either?!" src="http://feedsandwich.com/wp-content/uploads/2009/01/2009-01-22_1734-232x300.png" alt="Domain credits...not here either?!" width="232" height="300" /></a> <br />
<p class="wp-caption-text">Domain credits...not here either?!</p></div>
<p style="text-align: left;">If I&#8217;m missing something - namely a magical way of getting a 9p .co.uk domain from HeartInternet, I&#8217;ll happily stand corrected. If I am wrong, its really unclear!</p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"> </p>
<p style="text-align: center;">Here are the full sized images:</p>

<a href='http://feedsandwich.com/2009/01/22/rant-heartinternet-couk-domains-from-only-9p.html/2009-01-22_1719' title='2009-01-22_1719'><img src="http://feedsandwich.com/wp-content/uploads/2009/01/2009-01-22_1719-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://feedsandwich.com/2009/01/22/rant-heartinternet-couk-domains-from-only-9p.html/2009-01-22_1720' title='2009-01-22_1720'><img src="http://feedsandwich.com/wp-content/uploads/2009/01/2009-01-22_1720-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://feedsandwich.com/2009/01/22/rant-heartinternet-couk-domains-from-only-9p.html/2009-01-22_1734' title='Domain credits...not here either?!'><img src="http://feedsandwich.com/wp-content/uploads/2009/01/2009-01-22_1734-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://feedsandwich.com/2009/01/22/rant-heartinternet-couk-domains-from-only-9p.html/2009-01-22_1735' title='or here?'><img src="http://feedsandwich.com/wp-content/uploads/2009/01/2009-01-22_1735-150x150.png" width="150" height="150" class="attachment-thumbnail" alt="" /></a>

]]></content:encoded>
			<wfw:commentRss>http://feedsandwich.com/2009/01/22/rant-heartinternet-couk-domains-from-only-9p.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Mmmmm coffee</title>
		<link>http://feedsandwich.com/2009/01/20/mmmmm-coffee.html</link>
		<comments>http://feedsandwich.com/2009/01/20/mmmmm-coffee.html#comments</comments>
		<pubDate>Tue, 20 Jan 2009 10:48:46 +0000</pubDate>
		<dc:creator>Russell</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://feedsandwich.com/2009/01/20/mmmmm-coffee.html</guid>
		<description><![CDATA[I love coffee!

]]></description>
			<content:encoded><![CDATA[<p>I love coffee!</p>
<p><a href="http://feedsandwich.com/wp-content/uploads/2009/01/p-640-480-88a167d9-f387-459b-afbd-012b2209ab38.jpeg"><img src="http://feedsandwich.com/wp-content/uploads/2009/01/p-640-480-88a167d9-f387-459b-afbd-012b2209ab38.jpeg" alt="" width="225" height="300" class="alignnone size-full wp-image-364" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://feedsandwich.com/2009/01/20/mmmmm-coffee.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Kohana &amp; Lighttpd: A quick way of doing pretty URL&#8217;s</title>
		<link>http://feedsandwich.com/2009/01/06/kohana-lighttpd-a-quick-way-of-doing-pretty-urls.html</link>
		<comments>http://feedsandwich.com/2009/01/06/kohana-lighttpd-a-quick-way-of-doing-pretty-urls.html#comments</comments>
		<pubDate>Tue, 06 Jan 2009 21:59:49 +0000</pubDate>
		<dc:creator>Russell</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

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

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

		<guid isPermaLink="false">http://feedsandwich.com/?p=39</guid>
		<description><![CDATA[Want to use Kohana &#038; Lighttd with pretty URL's? Check out this method...]]></description>
			<content:encoded><![CDATA[<p>Please note, this is hardly the best way of working - all requests to the path will be forced through PHP. This sucks performance wise for images and other static files.</p>
<p>However, by default unless you use mod_magnet there is no current support for the Apache:</p>
<blockquote><p>RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d</p></blockquote>
<p>The above adds conditions to a rewrite rule, making sure that the request does not match a file or directory. Anyway - the simple solution for us Lighty users is to pipe everything through the Kohana index.php file. This is done by adding the following code into your lighttpd config file:</p>
<blockquote><p>url.rewrite-once = (&#8221;^/k/(.*)$&#8221; =&gt; &#8220;k/index.php/$1&#8243;)</p></blockquote>
<p>Hopefully obviously, if your Kohana app runs under the directory &#8220;russell&#8221;, you would alter the above to:</p>
<blockquote><p>url.rewrite-once = (&#8221;^/russell/(.*)$&#8221; =&gt; &#8220;russell/index.php/$1&#8243;)</p></blockquote>
<p>Or just running in the root?</p>
<blockquote><p>url.rewrite-once = (&#8221;^/(.*)$&#8221; =&gt; &#8220;index.php/$1&#8243;)</p></blockquote>
<p>In your index.php file, add the following after the first comment:</p>
<blockquote><p>if (file_exists($_SERVER['ORIG_PATH_TRANSLATED'])) {<br />
header(&#8217;X-Sendfile: &#8216;.$_SERVER['ORIG_PATH_TRANSLATED']);<br />
exit();<br />
}</p></blockquote>
<p>This instructs PHP to check if the file already exists on the system, and then to get Lighttpd to send it directly - PHP should be running for a very short time. FYI, you will need to enable &#8220;allow-x-send-file&#8221; in your FastCGI config, or change the header line to use readfile instead.</p>
<p>When I&#8217;m finished testing Kohana, I&#8217;ll write a new post explaining how to use mod_magnet to do it better.</p>
<p>NB: For more information on Kohana, see their <a href="http://docs.kohanaphp.com/">website</a> and <a href="http://docs.kohanaphp.com/">docs</a>. <a href="http://www.lighttpd.net/">Lighttpd</a> also has some excellent <a href="http://redmine.lighttpd.net/wiki/lighttpd">documentation</a> - especially on <a href="http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModRewrite">mod_rewrite</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://feedsandwich.com/2009/01/06/kohana-lighttpd-a-quick-way-of-doing-pretty-urls.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>An idea for improving trust on sales and customer service calls</title>
		<link>http://feedsandwich.com/2008/12/19/an-idea-for-improving-trust-on-sales-and-customer-service-calls.html</link>
		<comments>http://feedsandwich.com/2008/12/19/an-idea-for-improving-trust-on-sales-and-customer-service-calls.html#comments</comments>
		<pubDate>Fri, 19 Dec 2008 12:53:42 +0000</pubDate>
		<dc:creator>Russell</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://feedsandwich.com/?p=34</guid>
		<description><![CDATA[I get an innordanate amount of phone calls from people trying to upgrade my mobile phone, most of them, it turns out that most of them are not actually from the phone company at all. They are deliberatly misleading about this though.

This post is a quick and simple proposal to enable companies to verify that they are in fact someone you should believe is who they say they are.]]></description>
			<content:encoded><![CDATA[<p>I get an innordanate amount of phone calls from people trying to upgrade my mobile phone, most of them start like this;</p>
<blockquote><p>&#8220;Hello <strong>sir</strong>, we are calling from &lt;insert phone company here&gt; you to let you know you are due for an upgrade&#8221;</p></blockquote>
<p>It always gets me interested that they don&#8217;t know my name. Sometimes they do; &#8220;Hello Mr Smith&#8230;&#8221;</p>
<p>Either way, it turns out that most of them are not actually from the phone company at all. They are deliberatly misleading about this though.</p>
<p>I have similar problems with trusting calls from the bank, or Barclaycard. The questions in my mind are always along the following lines;</p>
<ol>
<li>How do I know this is really &lt;company&gt; I&#8217;m talking to?</li>
<li>Why are they asking me for all these personal details when I&#8217;m not sure of #1</li>
<li>Everyone would be happier if there was a simple solution</li>
</ol>
<div>I&#8217;m pretty sure there is.</div>
<div>Most companies ask you for a password when you phone them directly. My simple suggestion is for you to be able to (or have to) set a password for them.</div>
<div>In this case, the call would go as follows;</div>
<blockquote>
<div>&#8220;Hello Mr Smith, we are calling from &lt;insert phone company here&gt;. Our password for your account is XXXXX. We are just calling to let you know you are due for an upgrade.&#8221;</div>
<div>&#8220;Ok, tell me more!&#8221;</div>
</blockquote>
<div>This solution gives more peace of mind, in my eyes at least, than the existing way - you now don&#8217;t have to just rely on the honesty of the caller.</div>
]]></content:encoded>
			<wfw:commentRss>http://feedsandwich.com/2008/12/19/an-idea-for-improving-trust-on-sales-and-customer-service-calls.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Fancy URL&#8217;s with Laconica - updated!</title>
		<link>http://feedsandwich.com/2008/12/09/fancy-urls-with-laconica-updated.html</link>
		<comments>http://feedsandwich.com/2008/12/09/fancy-urls-with-laconica-updated.html#comments</comments>
		<pubDate>Tue, 09 Dec 2008 12:45:48 +0000</pubDate>
		<dc:creator>Russell</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[laconi.ca]]></category>

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

		<guid isPermaLink="false">http://feedsandwich.com/?p=28</guid>
		<description><![CDATA[I've rewritten the lighttpd config for <a href="http://laconi.ca/trac/">Laconi.ca</a> using the sample htaccess that comes with the project - we now have an up to date version for fancy URL's with Lighttpd]]></description>
			<content:encoded><![CDATA[<p>After installing <a href="http://laconi.ca/trac/">Laconi.ca</a> on <a href="http://wowtweet.net/">WoWtweet.net</a> I googled for how to do the fancy URL&#8217;s properly in Lighttpd - which turned up a <a href="http://decafbad.com/blog/2008/07/03/getting-laconica-up-and-running">great article</a> about setup / lighttpd by <a href="http://decafbad.com/blog/author/lmorchard">Leslie Orchard</a> - however its a little out of date with regard to the fancy bits&#8230;I guess the developers have been busy!</p>
<p>Anyway - I&#8217;ve rewritten the lighttpd config using the sample htaccess that comes with the project, borrowed a few bits from Leslie&#8217;s post - we now have an up to date version.</p>
<pre>$HTTP["host"] == "wowtweet.net" {
    server.name = "WoWTweet"
    server.document-root = "/home/wowtweet/public_html/"

	url.rewrite-final += (
	"^/index.php(.*)$" =&gt; "$0",

	"^/$" =&gt; "/index.php?action=public",
	"^/rss$" =&gt; "/index.php?action=publicrss",
	"^/xrds$" =&gt; "/index.php?action=publicxrds",
	"^/featuredrss$" =&gt; "/index.php?action=featuredrss",
	"^/favoritedrss$" =&gt; "/index.php?action=favoritedrss",
	"^/opensearch/people$" =&gt; "/index.php?action=opensearch&amp;type=people",
	"^/opensearch/notice$" =&gt; "/index.php?action=opensearch&amp;type=notice",

	"^/doc/about$" =&gt; "/index.php?action=doc&amp;title=about",
	"^/doc/contact$" =&gt; "/index.php?action=doc&amp;title=contact",
	"^/doc/faq$" =&gt; "/index.php?action=doc&amp;title=faq",
	"^/doc/help$" =&gt; "/index.php?action=doc&amp;title=help",
	"^/doc/im$" =&gt; "/index.php?action=doc&amp;title=im",
	"^/doc/openid$" =&gt; "/index.php?action=doc&amp;title=openid",
	"^/doc/openmublog$" =&gt; "/index.php?action=doc&amp;title=openmublog",
	"^/doc/privacy$" =&gt; "/index.php?action=doc&amp;title=privacy",
	"^/doc/source$" =&gt; "/index.php?action=doc&amp;title=source",

	"^/main/login$" =&gt; "/index.php?action=login",
	"^/main/logout$" =&gt; "/index.php?action=logout",
	"^/main/register/(.*)$" =&gt; "/index.php?action=register&amp;code=$1",
	"^/main/register$" =&gt; "/index.php?action=register",
	"^/main/openid$" =&gt; "/index.php?action=openidlogin",
	"^/main/remote$" =&gt; "/index.php?action=remotesubscribe",

	"^/main/subscribe$" =&gt; "/index.php?action=subscribe",
	"^/main/unsubscribe$" =&gt; "/index.php?action=unsubscribe",
	"^/main/confirmaddress$" =&gt; "/index.php?action=confirmaddress",
	"^/main/confirmaddress/(.*)$" =&gt; "/index.php?action=confirmaddress&amp;code=$1",
	"^/main/recoverpassword$" =&gt; "/index.php?action=recoverpassword",
	"^/main/recoverpassword/(.*)$" =&gt; "/index.php?action=recoverpassword&amp;code=$1",
	"^/main/invite$" =&gt; "/index.php?action=invite",

	"^/main/favor$" =&gt; "/index.php?action=favor",
	"^/main/disfavor$" =&gt; "/index.php?action=disfavor",

	"^/main/sup$" =&gt; "/index.php?action=sup",

	"^/main/tagother$" =&gt; "/index.php?action=tagother",

	"^/settings/profile$" =&gt; "/index.php?action=profilesettings",
	"^/settings/openid$" =&gt; "/index.php?action=openidsettings",
	"^/settings/im$" =&gt; "/index.php?action=imsettings",
	"^/settings/email$" =&gt; "/index.php?action=emailsettings",
	"^/settings/sms$" =&gt; "/index.php?action=smssettings",
	"^/settings/twitter$" =&gt; "/index.php?action=twittersettings",
	"^/settings/other$" =&gt; "/index.php?action=othersettings",

	"^/search/people(?:\?(.*)|$)$" =&gt; "/index.php?action=peoplesearch&amp;$1",
	"^/search/notice(?:\?(.*)|$)$" =&gt; "/index.php?action=noticesearch&amp;$1",
	"^/search/notice/rss(?:\?(.*)|$)" =&gt; "/index.php?action=noticesearchrss&amp;$1",

	"^/notice/new$" =&gt; "/index.php?action=newnotice",
	"^/notice/(\d+)$" =&gt; "/index.php?action=shownotice&amp;notice=$1",
	"^/notice/delete/((\d+))?$" =&gt; "/index.php?action=deletenotice&amp;notice=$2",
	"^/notice/delete$" =&gt; "/index.php?action=deletenotice",

	"^/message/new$" =&gt; "/index.php?action=newmessage",
	"^/message/(\d+)$" =&gt; "/index.php?action=showmessage&amp;message=$1",

	"^/user/(\d+)$" =&gt; "/index.php?action=userbyid&amp;id=$1",

	"^/tags/?$" =&gt; "/index.php?action=tag",
	"^/tag/([a-zA-Z0-9]+)/rss$" =&gt; "/index.php?action=tagrss&amp;tag=$1",
	"^/tag(/(.*))?$" =&gt; "/index.php?action=tag&amp;tag=$2",

	"^/peopletag/([a-zA-Z0-9]+)$" =&gt; "/index.php?action=peopletag&amp;tag=$1",

	"^/featured/?$" =&gt; "/index.php?action=featured",
	"^/favorited/?$" =&gt; "/index.php?action=favorited",

	"^/(\w+)/subscriptions$" =&gt; "/index.php?action=subscriptions&amp;nickname=$1",
	"^/(\w+)/subscriptions/([a-zA-Z0-9]+)$" =&gt; "/index.php?action=subscriptions&amp;nickname=$1&amp;tag=$2",
	"^/(\w+)/subscribers/([a-zA-Z0-9]+)$" =&gt; "/index.php?action=subscribers&amp;nickname=$1&amp;tag=$2",
	"^/(\w+)/subscribers$" =&gt; "/index.php?action=subscribers&amp;nickname=$1",
	"^/(\w+)/nudge$" =&gt; "/index.php?action=nudge&amp;nickname=$1",
	"^/(\w+)/xrds$" =&gt; "/index.php?action=xrds&amp;nickname=$1",
	"^/(\w+)/rss$" =&gt; "/index.php?action=userrss&amp;nickname=$1",
	"^/(\w+)/all$" =&gt; "/index.php?action=all&amp;nickname=$1",
	"^/(\w+)/all/rss$" =&gt; "/index.php?action=allrss&amp;nickname=$1",
	"^/(\w+)/foaf$" =&gt; "/index.php?action=foaf&amp;nickname=$1",
	"^/(\w+)/replies$" =&gt; "/index.php?action=replies&amp;nickname=$1",
	"^/(\w+)/replies/rss$" =&gt; "/index.php?action=repliesrss&amp;nickname=$1",
	"^/(\w+)/avatar/(original|96|48|24)$" =&gt; "/index.php?action=avatarbynickname&amp;nickname=$1&amp;size=$2",
	"^/(\w+)/favorites$" =&gt; "/index.php?action=showfavorites&amp;nickname=$1",
	"^/(\w+)/favorites/rss$" =&gt; "/index.php?action=favoritesrss&amp;nickname=$1",
	"^/(\w+)/inbox$" =&gt; "/index.php?action=inbox&amp;nickname=$1",
	"^/(\w+)/outbox$" =&gt; "/index.php?action=outbox&amp;nickname=$1",
	"^/(\w+)/microsummary$" =&gt; "/index.php?action=microsummary&amp;nickname=$1",

	"^/(\w+)$" =&gt; "/index.php?action=showstream&amp;nickname=$1",

	# Twitter-compatible API rewrites
	# XXX: Surely these can be refactored a little -- Zach
	"^/api/statuses/public_timeline(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=public_timeline$1",
	"^/api/statuses/friends_timeline(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=friends_timeline$1",
	"^/api/statuses/user_timeline/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=user_timeline&amp;argument=$1",
	"^/api/statuses/user_timeline(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=user_timeline$1",
	"^/api/statuses/show/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=show&amp;argument=$1",
	"^/api/statuses/update(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=update$1",
	"^/api/statuses/replies(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=replies&amp;argument=$1",
	"^/api/statuses/destroy/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=destroy&amp;argument=$1",
	"^/api/statuses/friends/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=friends&amp;argument=$1",
	"^/api/statuses/friends(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=friends$1",
	"^/api/statuses/followers/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=followers&amp;argument=$1",
	"^/api/statuses/followers(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=followers$1",
	"^/api/statuses/featured(.*)$" =&gt; "/index.php?action=api&amp;apiaction=statuses&amp;method=featured$1",
	"^/api/users/show/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=users&amp;method=show&amp;argument=$1",
	"^/api/users/show(.*)$" =&gt; "/index.php?action=api&amp;apiaction=users&amp;method=show$1",
	"^/api/direct_messages/sent(.*)$" =&gt; "/index.php?action=api&amp;apiaction=direct_messages&amp;method=sent$1",
	"^/api/direct_messages/destroy/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=direct_messages&amp;method=destroy&amp;argument=$1",
	"^/api/direct_messages/new(.*)$" =&gt; "/index.php?action=api&amp;apiaction=direct_messages&amp;method=create$1",
	"^/api/direct_messages(.*)$" =&gt; "/index.php?action=api&amp;apiaction=direct_messages&amp;method=direct_messages$1",
	"^/api/friendships/create/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=friendships&amp;method=create&amp;argument=$1",
	"^/api/friendships/destroy/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=friendships&amp;method=destroy&amp;argument=$1",
	"^/api/friendships/exists(.*)$" =&gt; "/index.php?action=api&amp;apiaction=friendships&amp;method=exists$1",
	"^/api/account/verify_credentials(.*)$" =&gt; "/index.php?action=api&amp;apiaction=account&amp;method=verify_credentials$1",
	"^/api/account/end_session$" =&gt; "/index.php?action=api&amp;apiaction=account&amp;method=end_session$1",
	"^/api/account/update_location(.*)$" =&gt; "/index.php?action=api&amp;apiaction=account&amp;method=update_location$1",
	"^/api/account/update_delivery_device(.*)$" =&gt; "/index.php?action=api&amp;apiaction=account&amp;method=update_delivery_device$1",
	"^/api/account/rate_limit_status(.*)$" =&gt; "/index.php?action=api&amp;apiaction=account&amp;method=rate_limit_status$1",
	"^/api/favorites/create/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=favorites&amp;method=create&amp;argument=$1",
	"^/api/favorites/destroy/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=favorites&amp;method=destroy&amp;argument=$1",
	"^/api/favorites/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=favorites&amp;method=favorites&amp;argument=$1",
	"^/api/favorites(.*)$" =&gt; "/index.php?action=api&amp;apiaction=favorites&amp;method=favorites$1",
	"^/api/notifications/follow/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=notifications&amp;method=follow&amp;argument=$1",
	"^/api/notifications/leave/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=notifications&amp;method=leave&amp;argument=$1",
	"^/api/blocks/create/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=blocks&amp;method=create&amp;argument=$1",
	"^/api/blocks/destroy/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=blocks&amp;method=destroy&amp;argument=$1",
	"^/api/help/(.*)$" =&gt; "/index.php?action=api&amp;apiaction=help&amp;method=$1"
	)
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://feedsandwich.com/2008/12/09/fancy-urls-with-laconica-updated.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
