<?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>Joe Dolson Accessible Web Design &#187; Software</title>
	<atom:link href="http://www.joedolson.com/articles/category/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joedolson.com/articles</link>
	<description>Tips and Commentary on Web Accessibility, Usability, and Search Marketing best practices.</description>
	<lastBuildDate>Wed, 23 Jun 2010 21:24:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>The future of WP to Twitter</title>
		<link>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/</link>
		<comments>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/#comments</comments>
		<pubDate>Wed, 05 May 2010 20:02:17 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[wptotwitter]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=787</guid>
		<description><![CDATA[In June of 2010, Twitter will be permanently disabling basic authentication in favor of the OAuth protocol for authentication. For WordPress plugins which make use of the Twitter API, this is a change which will have significant&#160;repercussions. The specific repercussion will be that every implementation of a plugin will need to be registered with Twitter [...]<p><strong><a href="http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/">The future of WP to Twitter</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>In June of 2010, Twitter will be <a href="http://apiwiki.twitter.com/OAuth-FAQ#WhenareyougoingtoturnoffBasicAuth">permanently disabling basic authentication</a> in favor of the <a href="http://oauth.net/">OAuth protocol</a> for authentication. For WordPress plugins which make use of the Twitter <abbr title="Application Programming Interface">API</abbr>, this is a change which will have significant&nbsp;repercussions. </p>
<p>The specific repercussion will be that every implementation of a plugin will need to be <a href="http://twitter.com/oauth_clients">registered with Twitter as a separate&nbsp;application</a>. </p>
<p>This means that the development of WP to Twitter will need to move in a slightly different direction. After pondering a bit, I&#8217;m left with four plausible&nbsp;choices:</p>
<ol>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#die">Let the plugin&nbsp;die</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#oauth">Implement OAuth for the&nbsp;plugin</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#webservice">Build a pass-through web service to act as an application interface with&nbsp;Twitter</a></li>
<li><a href="/articles/2010/05/the-future-of-wp-to-twitter/#3rdparty">Associate with a 3rd party web service in the same&nbsp;capacity</a></li>
</ol>
<p>These all have downsides, obviously&thinsp;&#8212;&thinsp;but I want to lay out my thoughts on each possibility and I&#8217;m asking for comments from the users of my plugin on their&nbsp;preference. </p>
<h3 id="die">Death of WP to&nbsp;Twitter</h3>
<p>Although it&#8217;s not really my favorite option, I have to acknowledge that it&#8217;s plausible. It&#8217;s certainly the easy answer&thinsp;&#8212;&thinsp;maintaining an even moderately popular WordPress plugin is a lot of free labor. I already spend more time on maintaining than I really should, from a financial perspective, and this may push it over the&nbsp;edge. </p>
<h3 id="oauth">Implement&nbsp;OAuth</h3>
<p>This would be a fair amount of work for me, although not insurmountable. The real downside to it would be how much work it would be for users&thinsp;&#8212;&thinsp;every one of you would have to register one application with Twitter for every site where you installed the plugin. With one site, this may not be a big deal&thinsp;&#8212;&thinsp;but I know it could be a real pain for people with more than&nbsp;that. </p>
<p>It&#8217;s not without some potential advantages, of course&thinsp;&#8211;&thinsp;when you&#8217;re registering your own application, you could customize the application name, the home <abbr title="Uniform Resource Locator">URL</abbr> for the application,&nbsp;etc. </p>
<h3 id="webservice">Build a pass-through&nbsp;service</h3>
<p>One way around the Oauth mess is for me to build a separate service which would handle actually connecting to Twitter. WP to Twitter would authenticate with that service, and pass the post off to Twitter. Again, this would be a lot of work&thinsp;&#8212;&thinsp;but, more significantly, it would involve some definite&nbsp;expenses. </p>
<p>I&#8217;ve been happy to maintain this plugin for not-much-better than free, but when it comes to incurring expenses, I start to feel a bit unexcited. It&#8217;s not like WP to Twitter is a commercially viable business, and I have expectations of profit from it&thinsp;&#8212;&thinsp;but I&#8217;d prefer not to find myself going into the hole because of it. I&#8217;d probably need to see an increase in donations to make this&nbsp;feasible.</p>
<h3 id="thirdparty">Use a 3rd Party&nbsp;Service</h3>
<p>Obviously, if I can build a service to connect with Twitter, so can somebody else. This is almost certainly the easiest solution which keeps the plugin usable&thinsp;&#8212;&thinsp;but it does mean creating a dependency on a 3rd party to keep the plugin functioning. Depending on Twitter is just natural; obviously, if Twitter goes away, the <em>point</em> of the plugin is lost. Depending on somebody else is something I&#8217;m less certain of, on the whole. There&#8217;s a reason, after all, that the plugin allows for use of URLs without an external&nbsp;shortener. </p>
<h3>Give me your&nbsp;thoughts</h3>
<p>This is very important to me&thinsp;&#8212;&thinsp;I want to know what direction you&#8217;d like to see WP to Twitter go. Please let me know! Do you know another solution? Do&nbsp;tell! </p>
<p>And if there are no responses&#8230;well, that has a <a href="/articles/2010/05/the-future-of-wp-to-twitter/#die">pretty obvious meaning</a> as well.
<p><strong><a href="http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/">The future of WP to Twitter</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2010/05/the-future-of-wp-to-twitter/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>WP to Twitter Update</title>
		<link>http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/</link>
		<comments>http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 16:21:51 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cligs]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=445</guid>
		<description><![CDATA[Current version:&#160;2.1.1 Download&#160;WP-to-Twitter Follow me on&#160;Twitter! Support this&#160;plugin! Support Questions and&#160;FAQ Version 2.1.1&#160;released. This is primarily a release targeted at tracking down some nagging problems; but it includes the ability to disable error messages for those suffering from errors even when the plugin is correctly shortening and posting your status&#160;updates. 2.0.0 Fixed bug introduced in [...]<p><strong><a href="http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/">WP to Twitter Update</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p>Current version:&nbsp;<strong>2.1.1</strong></p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/wp-to-twitter/">Download&nbsp;WP-to-Twitter</a></li>
<li><a href="http://twitter.com/joedolson">Follow me on&nbsp;Twitter!</a></li>
<li><a href="/donate.php">Support this&nbsp;plugin!</a></li>
<li><a href="/articles/wp-to-twitter/support/">Support Questions and&nbsp;<abbr title="Frequently Asked Questions">FAQ</abbr></a></li>
</ul>
</div>
<div id="update">
<strong>Version 2.1.1&nbsp;released.</strong> </p>
<p>This is primarily a release targeted at tracking down some nagging problems; but it includes the ability to disable error messages for those suffering from errors even when the plugin is correctly shortening and posting your status&nbsp;updates.</p>
</div>
<h4>2.0.0</h4>
<ul>
<li>Fixed bug introduced in WordPress 2.9 where logged in users could only edit their own profiles and associated&nbsp;issues.</li>
<li>Fixed bug which caused #<abbr title="Uniform Resource Locator">URL</abbr># to repeatedly be added to the end of tweet texts on reactivation or&nbsp;upgrade.</li>
<li>Fixed bug which generated shortener <abbr title="Application Programming Interface">API</abbr> error messages when no <abbr title="Uniform Resource Locator">URL</abbr> shortener was&nbsp;used.</li>
<li>Fixed bug which prevented display of <abbr title="Uniform Resource Locator">URL</abbr> on edit screen if no <abbr title="Uniform Resource Locator">URL</abbr> shortener was&nbsp;used.</li>
<li>Added Spanish translation courtesy of <a href="http://www.sohelet.com">David Gil&nbsp;P&eacute;rez</a></li>
<li>Made so many language changes that aforementioned translation is now terribly out of date, as are all&nbsp;others&#8230;</li>
<li>Added ability to restrict posting to certain&nbsp;categories.</li>
<li>Added option to dynamically generate Google Analytics campaign identifier by category, post title, author, or post&nbsp;id.</li>
<li>Added option to configure plugin to use other services using the Twitter-compatible&nbsp;<abbr title="Application Programming Interface">API</abbr>.</li>
<li>Added support for YOURLS installations as your <abbr title="Uniform Resource Locator">URL</abbr> shortener. (Either local or&nbsp;remote.)</li>
<li>Redesigned administrative&nbsp;interface.</li>
<li>Removed use of Snoopy and alternate <abbr title="HyperText Transfer Protocol">HTTP</abbr> request&nbsp;methods.</li>
<li>Discontinued support for WordPress versions below version&nbsp;2.7.</li>
<li>Major revisions to support&nbsp;checks.</li>
<li>Version jumped to&nbsp;2.0.0</li>
</ul>
</div>
<p><a href="http://wordpress.org/extend/plugins/wp-to-twitter/changelog/">See the change log at&nbsp;WordPress.org</a>.</p>
<p>Comments on this post are closed; please make comments at  <a href="/articles/wp-to-twitter/">the WP to Twitter home page</a>!
<p><strong><a href="http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/">WP to Twitter Update</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/11/wp-to-twitter-update-new-features/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>WordPress to Twitter with Cli.gs</title>
		<link>http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/</link>
		<comments>http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 16:16:38 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[cligs]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=434</guid>
		<description><![CDATA[About&#160;WP-to-Twitter Download&#160;WP-to-Twitter Technically, this plugin has been available from the WordPress plugin directory since last Monday, but today is it&#8217;s official launch. This is for two reasons: first, it gave the plugin a week to &#8220;shake out the bugs,&#8221; so that the official launch could be as stable as is reasonably&#160;possible. Second, it&#8217;s my birthday, [...]<p><strong><a href="http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/">WordPress to Twitter with Cli.gs</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p><a href="/articles/wp-to-twitter/">About&nbsp;WP-to-Twitter</a></p>
<p><a href="http://wordpress.org/extend/plugins/wp-to-twitter/">Download&nbsp;WP-to-Twitter</a></p>
</div>
<p>Technically, this plugin has been available from <a href="http://wordpress.org/extend/plugins/">the WordPress plugin directory</a> since last Monday, but <em>today</em> is it&#8217;s official launch. This is for two reasons: first, it gave the plugin a week to &#8220;shake out the bugs,&#8221; so that the official launch could be as stable as is reasonably&nbsp;possible. </p>
<p>Second, it&#8217;s my birthday, so I&#8217;ll be able to remember when the plugin launched. Isn&#8217;t that&nbsp;sweet?</p>
<p>The plug-in is pretty straightforward: it posts a status update about your new WP post to Twitter, passing by Pierre Far&#8217;s <a href="http://cli.gs">Cli.gs <abbr title="Uniform Resource Locator">URL</abbr> shortening service</a> on the way. If you have a <a href="http://cli.gs/user/api">Cli.gs <abbr title="Application Programming Interface">API</abbr> key</a>, you&#8217;ll get the added bonus that your Cli.gs will automatically show up in your Cli.gs account, so you can track the statistics of that Clig right from the&nbsp;beginning. </p>
<p>By default, the plugin will take a chunk of text you&#8217;ve defined and your post title and truncate them to an acceptable length (including your Cli.gs post <abbr title="Uniform Resource Locator">URL</abbr>) to send over to Twitter. However, you don&#8217;t have to just accept this stock text: you can custom author your Tweet for every post, using the WP to Twitter custom field in your post authoring&nbsp;interface. </p>
<p><a href="/articles/wp-to-twitter/" class="cta">Read more about WP->Twitter</a> </p>
<p><a href="/scripts/wp-to-twitter.php" class="cta">Download it at&nbsp;WordPress!</a></p>
<p><strong><a href="http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/">WordPress to Twitter with Cli.gs</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/11/wordpress-to-twitter-with-cligs/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Update to Search script in MySQL/PHP</title>
		<link>http://www.joedolson.com/articles/2008/09/update-to-search-script-in-mysqlphp/</link>
		<comments>http://www.joedolson.com/articles/2008/09/update-to-search-script-in-mysqlphp/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 22:32:15 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[free scripts]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=345</guid>
		<description><![CDATA[Try it out or download&#160;it! I know it&#8217;s only been a month, so it&#8217;s obviously far too soon for me to be publishing any kind of a script update. However, these were things which just needed to be&#160;done. First, I&#8217;ve greatly improved the internationalism of the script: it now operates searches on UTF-8 encoded data, [...]<p><strong><a href="http://www.joedolson.com/articles/2008/09/update-to-search-script-in-mysqlphp/">Update to Search script in MySQL/PHP</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p><a href="http://www.joedolson.com/search-engine/">Try it out</a> or <a href="http://www.joedolson.com/scripts/dolson-search.php">download&nbsp;it</a>!</p>
</div>
<p>I know it&#8217;s only been a month, so it&#8217;s <em>obviously</em> far too soon for me to be publishing any kind of a script update. However, these were things which just needed to be&nbsp;done.</p>
<p>First, I&#8217;ve greatly improved the internationalism of the script: it now operates searches on UTF-8 encoded data, so it should be great for working with any language which requires characters in that character set. Testing this kind of behavior is difficult, so if you should encounter any problems please do let me&nbsp;know! </p>
<p>Second, I improved the pagination of results. Previously, if there were 150 pages of results, you&#8217;d have to see links to every single page of the results. Granted, this can be advantageous, but it&#8217;s not really practical. In this updated version, when there are more than 10 pages of results you&#8217;ll only have links to the first page, the last page, and two pages before and after the current page. This boundary is configurable&thinsp;&#8212;&thinsp;you can offer 50 pages before and after the current, if you wish, but the default is&nbsp;2.</p>
<p>Last, I changed the way the search query was checked before being sent to MySQL. The original version of this script used my own custom-authored regular expression to secure the request. This was probably very secure, since it functioned by only allowing certain characters rather than checking restricted characters&thinsp;&#8212;&thinsp;but it did make things such as multibyte queries pretty much impossible. So it was time to change over to a more standard method. So be it! I got what I needed out of the regular expression; it didn&#8217;t need to stay in the script.
<p><strong><a href="http://www.joedolson.com/articles/2008/09/update-to-search-script-in-mysqlphp/">Update to Search script in MySQL/PHP</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/09/update-to-search-script-in-mysqlphp/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>New tool: evaluate color contrasts for WCAG 1 and 2</title>
		<link>http://www.joedolson.com/articles/2008/09/new-tool-evaluate-color-contrasts-for-wcag-1-and-2/</link>
		<comments>http://www.joedolson.com/articles/2008/09/new-tool-evaluate-color-contrasts-for-wcag-1-and-2/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 20:24:30 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[contrast]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=343</guid>
		<description><![CDATA[Use the color contrast evaluation&#160;tool. There are, of course, a lot of color contrast evaluation tools available on the web. Roger Johansson published a list of 10 color contrast checking tools last September, and there are undoubtedly more out there&#160;yet. In fact, for a long time, I&#8217;ve primarily used the three tools by Gez Lemon [...]<p><strong><a href="http://www.joedolson.com/articles/2008/09/new-tool-evaluate-color-contrasts-for-wcag-1-and-2/">New tool: evaluate color contrasts for WCAG 1 and 2</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p><a href="http://www.joedolson.com/color-contrast-compare.php">Use the color contrast evaluation&nbsp;tool</a>.</p>
</div>
<p>There are, of course, a <em>lot</em> of color contrast evaluation tools available on the web. Roger Johansson published a list of <a href="http://www.456bereastreet.com/archive/200709/10_colour_contrast_checking_tools_to_improve_the_accessibility_of_your_design/">10 color contrast checking tools</a> last September, and there are undoubtedly more out there&nbsp;yet. </p>
<p>In fact, for a long time, I&#8217;ve primarily used the three tools by Gez Lemon which are on that&nbsp;list: </p>
<ul>
<li><a href="http://juicystudio.com/services/colourcontrast.php">Color Contrast&nbsp;Analyzer</a></li>
<li><a href="http://juicystudio.com/services/luminositycontrastratio.php">Luminosity Contrast&nbsp;Ratio</a></li>
<li><a href="http://juicystudio.com/article/colour-contrast-analyser-firefox-extension.php">Color Contrast Analyzer Firefox&nbsp;Extension</a></li>
</ul>
<p>I certainly have no intention to stop using the Firefox Extension, but I&#8217;ve been irritated by the other two tools for a long time for two reasons. First, the simple fact that there are <em>two tools</em>. Obviously, the first was written long before the second, but given that they are testing the same pieces of information, it would be nice to be able to conduct the test with a single test. The second is that the tools have rather poor usability: the original color contrast analyzer, at any rate, gives a lot of information and it can be rather difficult to pick out the key bits: the actual contrast between the items and whether or not you&#8217;ve passed or&nbsp;failed. </p>
<p>This tool I&#8217;ve just placed on the web (&#8220;released&#8221; is far too glorified for this) is purely intended to combine these two functions into one tool and to provide more readable&nbsp;output. </p>
<p>I haven&#8217;t checked the output as thoroughly as I might have; there may well be bugs. Let me know if you notice one!
<p><strong><a href="http://www.joedolson.com/articles/2008/09/new-tool-evaluate-color-contrasts-for-wcag-1-and-2/">New tool: evaluate color contrasts for <abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 1 and 2</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/09/new-tool-evaluate-color-contrasts-for-wcag-1-and-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MySQL/PHP Boolean Search Updated</title>
		<link>http://www.joedolson.com/articles/2008/08/mysqlphp-boolean-search-updated/</link>
		<comments>http://www.joedolson.com/articles/2008/08/mysqlphp-boolean-search-updated/#comments</comments>
		<pubDate>Sun, 03 Aug 2008 20:54:23 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[spellcheck]]></category>
		<category><![CDATA[spelling]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=261</guid>
		<description><![CDATA[Following the publication of a brief article on Search results design by Adaptive Path, I decided that revising my database search script was a valuable goal. Specifically, meeting the checklist in that result was probably not a bad&#160;idea! It&#8217;s not that the previous version was terrible, but I knew perfectly well that it could be [...]<p><strong><a href="http://www.joedolson.com/articles/2008/08/mysqlphp-boolean-search-updated/">MySQL/PHP Boolean Search Updated</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Following the publication of a brief article on <a href="http://www.adaptivepath.com/blog/2008/07/14/designing-search-checklist/">Search results design</a> by Adaptive Path, I decided that revising my <a href="/Search-Engine-in-PHP-MySQL.php">database search script</a> was a valuable goal. Specifically, meeting the checklist in that result was probably not a bad&nbsp;idea!</p>
<p>It&#8217;s not that the previous version was terrible, but I knew perfectly well that it could be <em>much</em>&nbsp;better. </p>
<p>The additions to the script are pretty&nbsp;straightforward:</p>
<h3>Additions:</h3>
<ul>
<li>Added: Made row highlighting available in both tabular and list-based search&nbsp;results.</li>
<li>Added: Search terms are now highlighted in search&nbsp;results.</li>
<li>Added: The default sort is now to order results by query&nbsp;relevance.</li>
<li>Added: Paginated navigation of search results is now&nbsp;available.</li>
<li>Added: Translation base file [English], so translating the script is&nbsp;easier.</li>
<li>Added: Basic Spellchecking&nbsp;[English]</li>
<li>Added: Default&nbsp;stylesheet</li>
</ul>
<h3>Changes:</h3>
<ul>
<li>Changed: Text excerpts are now truncated at word boundaries, rather than in the middle of&nbsp;words.</li>
<li>Changed: separated results template information into external include files for easier upgrading or&nbsp;modification.</li>
<li>Changed: Included the search form as part of the script so that search terms could be automatically returned to the search&nbsp;input.</li>
</ul>
<p>The spell checking is the most exciting addition in my view. It&#8217;s hardly complete, but it&#8217;s based on a list of <a href="http://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings">4,068 common misspellings</a> available from Wikipedia. This addition has significantly bulked up the total download size, since I&#8217;m including the spell-checking database as part of the download, but I think it adds a lot of value to the&nbsp;script. </p>
<p>I&#8217;ve also added a translation base file to the package, to make it a bit easier for users of the script to port it to their own languages. Unfortunately, I haven&#8217;t yet had time to seriously work on the internationalization of the search script itself, so (to be entirely frank) this is an area which the script isn&#8217;t really well suited at this&nbsp;time. </p>
<p>Internationalization is next on the list, however. It&#8217;s a high priority at this point, since internationalization ranks as one of the most reported problems with the&nbsp;script. </p>
<p>With spell-checking in mind, I think it&#8217;s appropriate to provide a healthy reminder of the limitations of&nbsp;spellcheck:</p>
<h3>Candidate for a Pullet&nbsp;Surprise</h3>
<p><em>by Mark Eckman and Jerrold H.&nbsp;Zar</em></p>
<div class="poetry">
<p>I have a spelling checker,<br />
It came with my PC.<br />
It plane lee marks four my revue<br />
Miss steaks aye can knot&nbsp;sea.</p>
<p>Eye ran this poem threw it,<br />
Your sure reel glad two no.<br />
Its vary polished in it&#8217;s weigh.<br />
My checker tolled me&nbsp;sew.</p>
<p>A checker is a bless sing,<br />
It freeze yew lodes of thyme.<br />
It helps me right awl stiles two reed,<br />
And aides me when eye&nbsp;rime.</p>
<p>Each frays come posed up on my screen<br />
Eye trussed too bee a joule.<br />
The checker pours o&#8217;er every word<br />
To cheque sum spelling&nbsp;rule.</p>
<p>Bee fore a veiling checker&#8217;s<br />
Hour spelling mite decline,<br />
And if we&#8217;re lacks oar have a laps,<br />
We wood bee maid too&nbsp;wine.</p>
<p>Butt now bee cause my spelling<br />
Is checked with such grate flare,<br />
Their are know fault&#8217;s with in my cite,<br />
Of nun eye am a&nbsp;wear.</p>
<p>Now spelling does knot phase me,<br />
It does knot bring a tier.<br />
My pay purrs awl due glad den<br />
With wrapped word&#8217;s fare as&nbsp;hear.</p>
<p>To rite with care is quite a feet<br />
Of witch won should bee proud,<br />
And wee mussed dew the best wee can,<br />
Sew flaw&#8217;s are knot&nbsp;aloud.</p>
<p>Sow ewe can sea why aye dew prays<br />
Such soft wear four pea seas,<br />
And why eye brake in two averse<br />
Buy righting want too&nbsp;pleas.</p>
</div>
<p><strong><a href="http://www.joedolson.com/articles/2008/08/mysqlphp-boolean-search-updated/">MySQL/PHP Boolean Search Updated</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/08/mysqlphp-boolean-search-updated/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Looking for Translations</title>
		<link>http://www.joedolson.com/articles/2008/06/looking-for-translations/</link>
		<comments>http://www.joedolson.com/articles/2008/06/looking-for-translations/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 21:06:48 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[color contrast]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[translation]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=246</guid>
		<description><![CDATA[I&#8217;m looking for people to provide alternate language translations for my Color Contrast Tester. I&#8217;ve already got people offering to provide Italian and German language files, but once you&#8217;ve gone that far&#8230;why not keep&#160;going? If anybody reading this can provide additional translations, let me know in the comments&#8201;&#8212;&#8201;I&#8217;ll respond privately to make arrangements. It&#8217;s an [...]<p><strong><a href="http://www.joedolson.com/articles/2008/06/looking-for-translations/">Looking for Translations</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m looking for people to provide alternate language translations for my <a href="/color-contrast-tester.php">Color Contrast Tester</a>.  I&#8217;ve already got people offering to provide Italian and German language files, but once you&#8217;ve gone that far&#8230;why not keep&nbsp;going? </p>
<p>If anybody reading this can provide additional translations, let me know in the comments&thinsp;&#8212;&thinsp;I&#8217;ll respond privately to make arrangements. It&#8217;s an easy job; the language file is independent of the rest of the script, so there aren&#8217;t any serious challenges in sorting what needs to be&nbsp;done. </p>
<p>Thanks in advance!
<p><strong><a href="http://www.joedolson.com/articles/2008/06/looking-for-translations/">Looking for Translations</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/06/looking-for-translations/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Long-awaited update to PHP/MySQL poll</title>
		<link>http://www.joedolson.com/articles/2008/04/long-awaited-update-to-phpmysql-poll/</link>
		<comments>http://www.joedolson.com/articles/2008/04/long-awaited-update-to-phpmysql-poll/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 23:22:48 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[free scripts]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[poll]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/?p=238</guid>
		<description><![CDATA[Example&#160;Poll Download the .zip&#160;archive It didn&#8217;t quite take 2 years, at least. But very, very close. The last release of this script was May 25th, 2006&#8201;&#8212;&#8201;so I made it just under the wire. But this is also a bit more than just a script update. In fact, this is a complete overhaul. I&#8217;m not certain [...]<p><strong><a href="http://www.joedolson.com/articles/2008/04/long-awaited-update-to-phpmysql-poll/">Long-awaited update to PHP/MySQL poll</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p><a href="/poll-v2/">Example&nbsp;Poll</a></p>
<p><a href="/poll/mysql-poll.php">Download the .zip&nbsp;archive</a></p>
</div>
<p>It didn&#8217;t <em>quite</em> take 2 years, at least. But very, very close. The last release of this script was May 25th, 2006&thinsp;&#8212;&thinsp;so I made it just under the wire. But this is also a bit more than just a script update. In fact, this is a complete overhaul. I&#8217;m not certain that there&#8217;s actually a single line in the poll script which is the same as the previous&nbsp;version.</p>
<p>This was necessary; because the previous version was, in a word, pretty lousy. It may have acted as a decent jumping off point for some beginning programmers to code their own; but, on the whole, it was not a sophisticated script, and it was nothing like&nbsp;developer-friendly.</p>
<p>This new version, leveraging the power of <a href="http://code.google.com/apis/chart/">Google&#8217;s Chart <abbr title="Application Programming Interface">API</abbr></a> and some clever <a href="http://www.wait-till-i.com/2008/01/08/generating-charts-from-accessible-data-tables-using-the-google-charts-api/">scripting by Christian Heilmann</a> provides a better end result with fewer potential problems for the&nbsp;user. </p>
<p>I&#8217;ve vastly increased the flexibility of the script&thinsp;&#8212;&thinsp;which once could only support a fixed 2&thinsp;&#8211;&thinsp;5 options in a single question&thinsp;&#8212;&thinsp;to provide support for any number of questions with any number of options, customizable at the question level. I don&#8217;t anticipate that anybody will be authoring 100 question polls with this&#8230;but they could, in&nbsp;theory.</p>
<p>And, to cap it all off, I&#8217;ve added an administrative interface which allows users to perform most of their basic management needs without needing to crawl into the database. Hopefully, it won&#8217;t prove to be <em>too</em>&nbsp;buggy.</p>
<p>Are there likely to be bugs in this? <em>Yes!</em> So, if you download this and try it out, please let me know what you notice. I caught quite a few; but I think it&#8217;s safe to say that there are a few left in&nbsp;there.</p>
<p>And by &#8220;a few,&#8221; I mean &#8220;actually, there could be a lot of&nbsp;&#8216;em.&#8221;</p>
<p><a href="/poll-v2/">Check it out</a> or <a href="/poll/mysql-poll.php">download the package</a>&nbsp;now.</p>
<p><strong><a href="http://www.joedolson.com/articles/2008/04/long-awaited-update-to-phpmysql-poll/">Long-awaited update to <abbr title="Hypertext PreProcessing">PHP</abbr>/MySQL poll</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/04/long-awaited-update-to-phpmysql-poll/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A useful CAPTCHA from reCAPTCHA</title>
		<link>http://www.joedolson.com/articles/2008/01/a-useful-captcha-from-recaptcha/</link>
		<comments>http://www.joedolson.com/articles/2008/01/a-useful-captcha-from-recaptcha/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 03:10:04 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[captcha]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2008/01/a-useful-captcha-from-recaptcha/</guid>
		<description><![CDATA[Just wanted to add the comment, since I didn&#8217;t specify it explicitly, that I&#8217;m not trying to claim that the accessibility of this particularly CAPTCHA is all that fantastic&#8201;&#8212;&#8201;it&#8217;s pretty good, but there are serious problems. I&#8217;m just saying that it&#8217;s a neat idea. In case you don&#8217;t already know, &#8220;CAPTCHA&#8221; is an abbreviation for [...]<p><strong><a href="http://www.joedolson.com/articles/2008/01/a-useful-captcha-from-recaptcha/">A useful CAPTCHA from reCAPTCHA</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<div class="aside">
<p>Just wanted to add the comment, since I didn&#8217;t specify it explicitly, that I&#8217;m not trying to claim that the accessibility of this particularly <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> is all that fantastic&thinsp;&#8212;&thinsp;it&#8217;s pretty good, but there are serious problems. I&#8217;m just saying that it&#8217;s a neat idea. <img src='http://www.joedolson.com/articles/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
</div>
<p>In case you don&#8217;t already know, &#8220;<abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>&#8221; is an abbreviation for &#8220;Completely Automated Turing Test To Tell Computers and Humans Apart.&#8221; From an accessibility perspective, they tend to have significant problems&thinsp;&#8212;&thinsp;and I&#8217;m not going to try and claim that this one is perfect. However, it is very thoughtfully done, and has a very interesting additional feature which I&nbsp;appreciated.</p>
<p>I ran across this via <a href="http://www.stumbleupon.com">Stumbleupon</a>. Unusually, rather than finding it because I was busily stumbling around, I actually became aware of it because I was trying to create a new account. The interesting <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> is called &#8220;re<abbr title="Completely Automated Turing Test to Tell Computers and Humans Apart"><abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr></abbr>.&#8221;</p>
<p>Specifically, the concept behind it (<a href="http://recaptcha.net/learnmore.html">explained thoroughly on the reCAPTCHA site</a>) is to gain value from user input in <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>&nbsp;texts. </p>
<p>Most spam protection systems are based on nonsense words, random strings of letters, or obscured text. Anything, fundamentally, which might be difficult for a computer to&nbsp;identify.</p>
<p>What the folks at reCAPTCHA observed was that <em>scanning old books</em> provides a wealth of resources in the realm of obscured text which can&#8217;t easily be understood by computers. To solve this problem, they pasted together the needs of a <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> and their scanning process to create a service which helps them identify these unknown&nbsp;texts.</p>
<p>Obviously, there&#8217;s an immediate problem: if the computer has already failed to identify the text, how do you test whether a human has read it correctly? Simply speaking, you&nbsp;don&#8217;t. </p>
<p>Instead, reCAPTCHA provides two words for the user: one they know, and one they don&#8217;t. The known word is the Turing test&thinsp;&#8212;&thinsp;the unknown word creates a source for the computer to identify the word they didn&#8217;t&nbsp;know. </p>
<p>From&nbsp;reCAPTCHA.com: </p>
<blockquote><p>
About 60 million CAPTCHAs are solved by humans around the world every day. In each case, roughly ten seconds of human time are being spent. Individually, that&#8217;s not a lot of time, but in aggregate these little puzzles consume more than 150,000 hours of work each day. What if we could make positive use of this human effort? reCAPTCHA does exactly that by channeling the effort spent solving CAPTCHAs online into &#8220;reading&#8221;&nbsp;books.</p>
<p>[&#8230;]</p>
<p>But if a computer can&#8217;t read such a <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>, how does the system know the correct answer to the puzzle? Here&#8217;s how: Each new word that cannot be read correctly by OCR is given to a user in conjunction with another word for which the answer is already known. The user is then asked to read both words. If they solve the one for which the answer is known, the system assumes their answer is correct for the new one. The system then gives the new image to a number of other people to determine, with higher confidence, whether the original answer was&nbsp;correct.
</p></blockquote>
<p>The <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> itself is delivered via Javascript or iFrame. When Javascript is unavailable, a perfectly usable fallback is provided. reCAPTCHA also provides an audio alternative&thinsp;&#8212;&thinsp;which, I&#8217;ll confess, I found very difficult. I&#8217;d need to see some kind of user test results, however, to really know how difficult the audio version is overall. In general, <em>as <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> technology goes</em>, this is an admirable project. Not only because they have taken a reasonably conscientious path in preparing the interface, but simply because it&#8217;s a very good&nbsp;idea. </p>
<p>It&#8217;s unlikely I&#8217;ll implement it, I&#8217;ll confess. The fact that it&#8217;s delivered via an iFrame and the simple nature of a <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> go against my generally preferences in web development. However, should I be in a situation where I need to implement one&thinsp;&#8212;&thinsp;this will <em>certainly</em> be a strong candidate! (And even stronger if they fix their accessibility&nbsp;issues.)</p>
<h4>More&nbsp;Information</h4>
<ul>
<li><a href="http://recaptcha.net/">reCAPTCHA.net</a> (sadly, a table-based layout with no&nbsp;DocTYPE.)</li>
<li><a href="http://www.techcrunch.com/2007/09/16/recaptcha-using-captchas-to-digitize-books/">reCAPTCHA on Tech&nbsp;Crunch</a></li>
<li><a href="http://www.communitymx.com/blog/index.cfm?newsid=858">Community MX: reCAPTCHA&thinsp;&#8211;&thinsp;Simple and&nbsp;Accessible</a></li>
<li><a href="http://www.tamingthebeast.net/blog/online-world/recaptcha-mailhide-0507.htm">reCAPTCHA Mailhide (Another product from&nbsp;reCAPTCHA)</a></li>
<li><a href="http://recaptcha.net/plugins/wordpress/">reCAPTCHA WordPress&nbsp;Plugin</a></li>
<li><a href="http://recaptcha.net/plugins/php/"><abbr title="Hypertext PreProcessing">PHP</abbr> Library for&nbsp;reCAPTCHA</a></li>
<li><a href="http://recaptcha.net/resources.html">Other Application and <abbr title="Application Programming Interface">API</abbr> resources for&nbsp;reCAPTCHA</a></li>
</ul>
<p><strong><a href="http://www.joedolson.com/articles/2008/01/a-useful-captcha-from-recaptcha/">A useful <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr> from reCAPTCHA</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2008/01/a-useful-captcha-from-recaptcha/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>PHP/MySQL Boolean Search Script Updated</title>
		<link>http://www.joedolson.com/articles/2007/10/phpmysql-boolean-search-script-updated/</link>
		<comments>http://www.joedolson.com/articles/2007/10/phpmysql-boolean-search-script-updated/#comments</comments>
		<pubDate>Sun, 21 Oct 2007 20:06:56 +0000</pubDate>
		<dc:creator>Joe Dolson</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[boolean logic]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://www.joedolson.com/articles/2007/10/phpmysql-boolean-search-script-updated/</guid>
		<description><![CDATA[Just a quick announcement that I&#8217;ve updated my search script for Boolean matching in MySQL. The latest version is available for download on the PHP/MYSQL Search Engine script&#160;page. The changes to this version&#160;include: Fixed: various minor&#160;bugs Fixed: multipage results not available with quoted&#160;strings Fixed: full-text query&#160;problem Fixed: some compatibility issues with different PHP/MySQL&#160;configurations. Added: sortable&#160;results [...]<p><strong><a href="http://www.joedolson.com/articles/2007/10/phpmysql-boolean-search-script-updated/">PHP/MySQL Boolean Search Script Updated</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web Design</small></p>
]]></description>
			<content:encoded><![CDATA[<p>Just a quick announcement that I&#8217;ve updated my search script for Boolean matching in MySQL. The latest version is available for download on the <a href="http://www.joedolson.com/Search-Engine-in-PHP-MySQL.php"><abbr title="Hypertext PreProcessing">PHP</abbr>/MYSQL Search Engine script&nbsp;page</a>.</p>
<p>The changes to this version&nbsp;include:</p>
<ul>
<li>Fixed: various minor&nbsp;bugs</li>
<li>Fixed: multipage results not available with quoted&nbsp;strings</li>
<li>Fixed: full-text query&nbsp;problem</li>
<li>Fixed: some compatibility issues with different <abbr title="Hypertext PreProcessing">PHP</abbr>/MySQL&nbsp;configurations. </li>
<li>Added: sortable&nbsp;results</li>
<li>Added: configurable field label&nbsp;names</li>
<li>Added: sample results&nbsp;page</li>
<li>Added: test mode for&nbsp;troubleshooting.</li>
</ul>
<p>It&#8217;s not a massive update; but the script should be easier to use and more reliable.
<p><strong><a href="http://www.joedolson.com/articles/2007/10/phpmysql-boolean-search-script-updated/"><abbr title="Hypertext PreProcessing">PHP</abbr>/MySQL Boolean Search Script Updated</a></strong><br /><small>Copyright 2004&thinsp;&ndash;&thinsp;2010 Joseph C Dolson, Accessible Web&nbsp;Design</small></p>]]></content:encoded>
			<wfw:commentRss>http://www.joedolson.com/articles/2007/10/phpmysql-boolean-search-script-updated/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
