<?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>Ted Roche&#039;s weblog</title>
	<atom:link href="http://blog.tedroche.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tedroche.com</link>
	<description>Mission: Interoperable. Working Well with Others Is Good. Competition breeds Innovation. Monopolies breed stagnation.</description>
	<lastBuildDate>Thu, 10 May 2012 14:15:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SSH Shell as a Google Chrome app</title>
		<link>http://blog.tedroche.com/2012/05/02/ssh-shell-as-a-google-chrome-app/</link>
		<comments>http://blog.tedroche.com/2012/05/02/ssh-shell-as-a-google-chrome-app/#comments</comments>
		<pubDate>Wed, 02 May 2012 13:14:12 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=4007</guid>
		<description><![CDATA[Getting Windows to securely log in to a Linux/UNIX/OS X computer is a challenge. Typically, I have installed PuTTY or the CygWin shell for POSIX utilities. Now, with Google building Chrome and extending it with an App Store, there&#8217;s a &#8230; <a href="http://blog.tedroche.com/2012/05/02/ssh-shell-as-a-google-chrome-app/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Getting Windows to securely log in to a Linux/UNIX/OS X computer is a challenge. Typically, I have installed <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> or the <a href="http://www.cygwin.com/">CygWin</a> shell for POSIX utilities. Now, with Google building Chrome and extending it with an App Store, there&#8217;s a new possibility: ssh as an applet within Chrome. The current version is beta, and it has numerous limitations: many keystrokes are intercepted by the browser or OS, and there&#8217;s not yet a facility for public key authentication, but it is a good start. Check it out: <a href="https://groups.google.com/forum/?fromgroups#!category-topic/chromebook-central/discuss-chrome-os/7lKTTlttkLo">https://groups.google.com/forum/?fromgroups#!category-topic/chromebook-central/discuss-chrome-os/7lKTTlttkLo</a></p>
<p>Tip of the hat to Gina Trappani for sharing the link via Google+</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/05/02/ssh-shell-as-a-google-chrome-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On The Origins of Foo, Bar and related terms</title>
		<link>http://blog.tedroche.com/2012/04/05/on-the-origins-of-foo-bar-and-related-terms/</link>
		<comments>http://blog.tedroche.com/2012/04/05/on-the-origins-of-foo-bar-and-related-terms/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 14:07:11 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bar]]></category>
		<category><![CDATA[foo]]></category>
		<category><![CDATA[foobar]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[rfc]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3998</guid>
		<description><![CDATA[The IETF writes the Requests For Comments (RFCs) that are the rules of the road of the internet. They include an RFC http://www.ietf.org/rfc/rfc3092.txt explaining the significance of foo, bar and related terms for those unfamiliar. I can&#8217;t have anything but &#8230; <a href="http://blog.tedroche.com/2012/04/05/on-the-origins-of-foo-bar-and-related-terms/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The IETF writes the Requests For Comments (RFCs) that are the rules of the road of the internet. They include an RFC <a href="http://www.ietf.org/rfc/rfc3092.txt">http://www.ietf.org/rfc/rfc3092.txt</a> explaining the significance of foo, bar and related terms for those unfamiliar. I can&#8217;t have anything but respect for such a thorough engineering effort.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/04/05/on-the-origins-of-foo-bar-and-related-terms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calculate your BMI using Wolfram Alpha</title>
		<link>http://blog.tedroche.com/2012/04/02/calculate-your-bmi-using-wolfram-alpha/</link>
		<comments>http://blog.tedroche.com/2012/04/02/calculate-your-bmi-using-wolfram-alpha/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 21:37:56 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3992</guid>
		<description><![CDATA[Harness the power of the Wolfram Alpha computational engine to see how your height/weight ranks against the currently-accepted BMI calculations and populations: Wolfram Alpha provides a WordPress plugin that allows the WordPress author to use a shortcode to place a &#8230; <a href="http://blog.tedroche.com/2012/04/02/calculate-your-bmi-using-wolfram-alpha/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Harness the power of the <a href="http://www.wolframalpha.com/about.html">Wolfram Alpha computational engine</a> to see how your height/weight ranks against the currently-accepted BMI calculations and populations:</p>
<script type="text/javascript" id="WolframAlphaScriptbd2271d0eb320a2e2f27536bce47b91d" src="http://www.wolframalpha.com/widget/widget.jsp?id=bd2271d0eb320a2e2f27536bce47b91d"></script>
<p>Wolfram Alpha provides a WordPress plugin that allows the WordPress author to use a shortcode to place a widget in a post. There&#8217;s also (separate) support for putting a <a href="http://www.wolframalpha.com/widgets/">Wolfram Alpha widg</a>et inside a WordPress sidebar or widget. There&#8217;s a <a href="http://www.wolframalpha.com/widgets/gallery/">gallery with lots of pre-created widgets</a> and an interface to create your own. Pretty cool.</p>
<p>Note that you need to specify the units (&#8220;lb&#8221; for pounds, &#8220;in&#8221; for inches, or 5&#8242; 7.5&#8243; for typical foot-inches height expressions) otherwise the widget seems to make some really poor choices, deciding that weight of 67 means aged 67 years.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/04/02/calculate-your-bmi-using-wolfram-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Web is about People, if we let it be</title>
		<link>http://blog.tedroche.com/2012/03/15/intertubes-are-made-out-of-people/</link>
		<comments>http://blog.tedroche.com/2012/03/15/intertubes-are-made-out-of-people/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 15:43:27 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[Apple Macintosh OS X]]></category>
		<category><![CDATA[Home Page]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[professionalism]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3871</guid>
		<description><![CDATA[I was recently contacted by a company interested in having me consult on their development efforts. As I usually do, I did some background research to figure out who they are and what they do. I was appalled: their web &#8230; <a href="http://blog.tedroche.com/2012/03/15/intertubes-are-made-out-of-people/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was recently contacted by a company interested in having me consult on their development efforts. As I usually do, I did some background research to figure out who they are and what they do. I was appalled: their web site is one of tens of thousands of generic business sites, pretty but empty. All the buzzterms were there, the generic stock photos of the properly demographically-disparate team meetings, leaning over shiny laptops not wired to anything and pointing to pie charts with no labels. The &#8216;About Us&#8217; page is filled with slogans and buzz words on how awesome &#8220;the team&#8221; was, without the single mention of who the team is.  The &#8220;Contact Us&#8221; page is a generic web-based form, with direct links to &#8220;sales@example.com&#8221; or &#8220;info@example.com.&#8221; Want a job? Jobs@example.com or hr@example.com.</p>
<p>What is it &#8220;About Us&#8221; you don&#8217;t understand? If you have a link saying &#8220;Who We Are,&#8221; you had better be ready to name names. Who are these people and what are they hiding? There&#8217;s no excuse for a web site like this. Are these people in the witness protection program? Do these people stand behind what they build? There&#8217;s no reputation to worry about losing because they never tell you who they are.</p>
<p>You can have the stiff corporate &#8220;Who We Are&#8221; of black and white pictures of the &#8220;Leadership Team&#8221; in suits, &#8220;Our Advisors&#8221; to name-drop your VCs or Directors, or a more playful site of caricatures and off-beat bios. Kudos go to the sites that include your Twitter and Github accounts, and let folks share their passion for mountain biking, marathons or matchbook collecting. But denying there are people behind your web storefront tells me you&#8217;re not proud of who you are, you&#8217;re uncomfortable putting yourself out there, or you&#8217;ve got something to hide.</p>
<p>And that&#8217;s the real problem with a &#8220;Who We Are&#8221; site like this: the publishers are telling us much more about themselves than they intend. In a customer-facing industry where personal service and attention is a key determinant in the success of the project, they&#8217;re stating they are not comfortable with that level of contact.</p>
<p>Food for thought.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/03/15/intertubes-are-made-out-of-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Ubuntu Fonts</title>
		<link>http://blog.tedroche.com/2012/02/29/free-ubuntu-fonts/</link>
		<comments>http://blog.tedroche.com/2012/02/29/free-ubuntu-fonts/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 15:53:41 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3955</guid>
		<description><![CDATA[Ubuntu has released their own custom-designed fonts with all the bells and whistles: bold, italic, condensed, proportional and monospace. Released under the Ubuntu Font License (vice the earlier Red Hat and Oracle Liberation fonts, released under the GPL with a &#8230; <a href="http://blog.tedroche.com/2012/02/29/free-ubuntu-fonts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ubuntu has released their own custom-designed fonts with all the bells and whistles: bold, italic, condensed, proportional and monospace. Released under the Ubuntu Font License (vice the earlier Red Hat and Oracle <a href="https://www.redhat.com/promo/fonts/">Liberation fonts</a>, released under the GPL with a font exception &#8211; embedding the font is &#8216;non-viral&#8217;). Check them out at: <a href="http://font.ubuntu.com/">http://font.ubuntu.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/02/29/free-ubuntu-fonts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tonight: WordPress Backups at Seacoast WordPress Developers Group</title>
		<link>http://blog.tedroche.com/2012/02/15/tonight-wordpress-backups-at-seacoast-wordpress-developers-group/</link>
		<comments>http://blog.tedroche.com/2012/02/15/tonight-wordpress-backups-at-seacoast-wordpress-developers-group/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 21:19:56 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3925</guid>
		<description><![CDATA[Tune in tonight at the NH-ICC for the meeting of the Seacoast WordPress Developers Group. I&#8217;ll be talking about WordPress backups. See my slides (and outline) with complete notes and links at http://www.tedroche.com/papers.html. Want to attend tonight or a future &#8230; <a href="http://blog.tedroche.com/2012/02/15/tonight-wordpress-backups-at-seacoast-wordpress-developers-group/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tune in tonight at the <a href="http://www.nh-icc.org">NH-ICC</a> for the meeting of the <a href="http://www.wordpressdevseacoast.com/">Seacoast WordPress Developers Group</a>. I&#8217;ll be talking about WordPress backups. See my slides (and outline) with complete notes and links at <a href="http://www.tedroche.com/papers.html">http://www.tedroche.com/papers.html</a>.</p>
<p>Want to attend tonight or a future meeting? <a href="http://www.meetup.com/WordpressDevSeacoast/">Meetup details here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/02/15/tonight-wordpress-backups-at-seacoast-wordpress-developers-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stuff Ted Says #7: Source code control</title>
		<link>http://blog.tedroche.com/2012/02/15/stuff-ted-says-7-source-code-control/</link>
		<comments>http://blog.tedroche.com/2012/02/15/stuff-ted-says-7-source-code-control/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 14:08:04 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[SourceSafe]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[professionalism]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[source code control]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3658</guid>
		<description><![CDATA[The folks on the ProFox mailing list liked this one: &#8220;Source code control is a necessity when the number of programmers exceeds _zero_.&#8221;]]></description>
			<content:encoded><![CDATA[<p>The folks on the <a title="Link to the mailing list page" href="http://leafe.com/mailman/listinfo/profoxtech">ProFox mailing list</a> liked this one: &#8220;Source code control is a necessity when the number of programmers exceeds _zero_.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/02/15/stuff-ted-says-7-source-code-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dead links, what to do?</title>
		<link>http://blog.tedroche.com/2012/02/13/dead-links-what-to-do/</link>
		<comments>http://blog.tedroche.com/2012/02/13/dead-links-what-to-do/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 13:38:37 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3776</guid>
		<description><![CDATA[Reviewing my blog&#8217;s access logs, I see a miscreant application was denied access thanks to the BadBehavior plugin. Curious, I followed the link as, truth to tell, I don&#8217;t recall all my posts, especially one seven years old. When I &#8230; <a href="http://blog.tedroche.com/2012/02/13/dead-links-what-to-do/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Reviewing my blog&#8217;s access logs, I see a miscreant application was denied access thanks to the <a href="http://www.bad-behavior.ioerror.us/">BadBehavior</a> plugin. Curious, I followed the link as, truth to tell, I don&#8217;t recall all my posts, especially one seven years old. When I reviewed the post, I tried to follow the links, and 4 out of 6 are dead. What should I do about old, dead links? The post was pretty much a &#8220;look at this&#8221; piece, pointing to content mostly gone by now. Should I just kill the post, prune off the dead links with an editorial comment on what used to be there, or ignore it?</p>
<p>I don&#8217;t consider this blog to be much of an historical document, so I&#8217;m not concerned about defacing it. Google searches are likely finding the keywords on that page and redirecting folks here, which is unfortunately, as the page has really lost its value. Just deleting the page hurts the Google page rank of the domain when the crawlers can&#8217;t find it any more. Properly curating the page with editorial notes that summarize what the links were about, that they are dead now, and what the whole point of the post was, would be very nice, but is really more effort than is reasonable to ask, especially when you consider there are likely to be 2,000 other posts needing curation.</p>
<p>The best lesson to take away from this is not to write posts just saying &#8220;Check this out&#8221; and instead summarize what&#8217;s there to be seen, what it means, and why it&#8217;s important enough to point out to your readers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/02/13/dead-links-what-to-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing shorttags in PHP source code</title>
		<link>http://blog.tedroche.com/2012/02/11/fix-shorttags-php/</link>
		<comments>http://blog.tedroche.com/2012/02/11/fix-shorttags-php/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 15:39:42 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3854</guid>
		<description><![CDATA[Short tags is a topic of some controversy in coding circles: wrapping your script in less-than, question-mark x 2, greater-than signs is easy to type and flows off the fingers but can be a source of confusion to some parsers. &#8230; <a href="http://blog.tedroche.com/2012/02/11/fix-shorttags-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Short tags is a topic of some controversy in coding circles: wrapping your script in less-than, question-mark x 2, greater-than signs is easy to type and flows off the fingers but can be a source of confusion to some parsers. In PHP, it is not recommended, but there is a &#8220;shorttag&#8221; option available to override it globally or locally.</p>
<p>I recently was asked to edit some older PHP code and found it was littered with short tags, both the &lt;? script goes here ?&gt; variety and the shortcut output &lt;?=&#8221;Print this string&#8221;?&gt; variety, which need to be replaced by &lt;?php script goes here ?&gt; and &lt;?php echo &#8220;Print this string&#8221; ?&gt; respectively. A bit beyond my search-and-replace regex or sed skills, I found a fairly <a title="Link to answer on StackOverflow" href="http://stackoverflow.com/questions/3615531/how-do-i-convert-php-short-tag-to-full-one/3621669#3621669">elegant solution on StackOverflow</a>, which uses PHP to rewrite PHP:</p>
<pre>#! /usr/bin/php
 &lt;?php
 global $argv;</pre>
<pre>$contents = file_get_contents($argv[1]) or die;
 $tokens = token_get_all($contents);
 $tokens[] = array(0x7E0F7E0F,"",-1);</pre>
<pre>foreach($tokens as $ix =&gt; $token) {
 if(is_array($token)) {
 list($toktype, $src) = $token;
 if ($toktype == T_OPEN_TAG) {
 if (($src == "&lt;?") &amp;&amp; ($tokens[$ix+1][0] != T_STRING)) {
 $src = "&lt;?php";
 if ($tokens[$ix+1][0] != T_WHITESPACE) {
 $src .= " ";
 }
 }
 }
 else if($toktype == T_OPEN_TAG_WITH_ECHO) {
 $src = "&lt;?php echo";
 if($tokens[$ix+1][0] != T_WHITESPACE) {
 $src .= " ";
 }
 }
 print $src;
 }
 else {
 print $token;
 }
 }</pre>
<p>It just needed a little shell wrapper to take in all the files (which I&#8217;d renamed *.php.old and archived and made a backup of) and put them out as *.php.old.new. Again, a quick rename and I was in business. I was astounded to find it ran the first time!</p>
<pre>#! /bin/bash</pre>
<pre>FILES=./*.php.old
 for f in $FILES
 do
 echo "phpize $f &gt;$f.new"
 ./phpize.php $f&gt;$f.new
 done</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/02/11/fix-shorttags-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Staples: &#8220;that was easy&#8221; FAIL</title>
		<link>http://blog.tedroche.com/2012/02/10/staples-that-was-easy-fail/</link>
		<comments>http://blog.tedroche.com/2012/02/10/staples-that-was-easy-fail/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 21:05:02 +0000</pubDate>
		<dc:creator>tedroche</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blog.tedroche.com/?p=3841</guid>
		<description><![CDATA[I&#8217;m a regular customer of Staples, web-based and brick-and-mortar. I&#8217;m attempting to reset my online password. This function failed the &#8220;that was easy&#8221; motto. Forgive my crankiness, but I design and develop web pages for a living and I expect &#8230; <a href="http://blog.tedroche.com/2012/02/10/staples-that-was-easy-fail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a regular customer of Staples, web-based and brick-and-mortar. I&#8217;m attempting to reset my online password. This function failed the &#8220;that was easy&#8221; motto. Forgive my crankiness, but I design and develop web pages for a living and I expect better from a world-class organization like Staples. In accordance with good security practices, I&#8217;m using a password consisting of upper- and lower-case alphabetic, numeric and punctuation characters. I am not trying anything tricky like Alt+numeric-keypad characters. I&#8217;m using a en-us keyboard layout. Here are the problems with the message I&#8217;m getting:</p>
<p>1. &#8220;Sorry, but an error has been made.&#8221; is atrociously passive grammar. And who has made an error? The operator, the web site?</p>
<p>2. &#8220;The information you entered contains invalid characters.&#8221; Which ones? The email address or the password fields? The &#8220;5&#8243; the &#8220;@&#8221; the hyphen or the &#8220;e&#8221; ?</p>
<p>3. &#8220;Please try again&#8221; How many times should I try again, and what is it that I should try differently?</p>
<p>4. If you have a password policy (like &#8220;no punctuation&#8221;), you need to tell the person typing it in.</p>
<p>5. If an operator can type it in from the keyboard, it _is_ a valid character. You need to be liberal in what you accept.</p>
<p>Staples, you lost a sale today, and you&#8217;ve lost my trust that you know how to run a secure website.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tedroche.com/2012/02/10/staples-that-was-easy-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

