<?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>Less Talk, More Do &#187; Technology</title>
	<atom:link href="http://www.chrisfinke.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chrisfinke.com</link>
	<description>Christopher Finke is a software engineer who builds high-traffic websites (like AOL Shopping and Mahalo.com) and develops browser add-ons (like ScribeFire, TwitterBar, FireFound, and Tapsure) to enhance the Web.</description>
	<lastBuildDate>Mon, 06 Feb 2012 21:34:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>What do people type in the address bar?</title>
		<link>http://www.chrisfinke.com/2011/07/25/what-do-people-type-in-the-address-bar/</link>
		<comments>http://www.chrisfinke.com/2011/07/25/what-do-people-type-in-the-address-bar/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 14:00:31 +0000</pubDate>
		<dc:creator>Christopher Finke</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Mozilla Firefox]]></category>
		<category><![CDATA[Mozilla Firefox for Mobile]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[URL Fixer]]></category>

		<guid isPermaLink="false">http://www.chrisfinke.com/?p=2104</guid>
		<description><![CDATA[An analysis of 7.5MM location bar inputs.]]></description>
			<content:encoded><![CDATA[<p>Earlier this year, I added a feature to <a href="https://addons.mozilla.org/en-US/firefox/addon/url-fixer/">URL Fixer</a> (a browser add-on that fixes errors in URLs that you type in the address bar) that collects anonymous usage stats from users who opt in in order to help improve the ways that URL Fixer corrects typos; the collected data includes domains that are typed in the URL bar as well as the locale (language/country) of the user who typed them.</p>
<p>I now have six months of data, and I&#8217;ve run some statistical analysis on it in order to share some interesting stats with you. (If I were more creative, I would make an infographic out of this information.) <em>Note that this data does not include bookmarked links or links that users click on in websites. It is strictly domains that have been typed directly into the address bar.</em></p>
<div class="snippet">
<p>Care to guess <b>the most commonly typed domain</b>? That&#8217;s right: <b>facebook.com</b>. It was typed almost three times as often as <b>the second most popular domain</b>, google.com.</p>
</div>
<div class="snippet">
<p><b>The top 10 domains</b> account for 20% of all typed domains.</p>
<table class="data" style="width: 100%;">
<tr>
<td>facebook.com</td>
<td>9%</td>
<td>twitter.com</td>
<td>1.1%</td>
<td>amazon.com</td>
<td>0.5%</td>
</tr>
<tr>
<td>google.com</td>
<td>3.3%</td>
<td>mail.google.com</td>
<td>0.6%</td>
<td>reddit.com</td>
<td>0.5%</td>
</tr>
<tr>
<td>youtube.com</td>
<td>3.3%</td>
<td>yahoo.com</td>
<td>0.6%</td>
</tr>
<tr>
<td>gmail.com</td>
<td>1.1%</td>
<td>hotmail.com</td>
<td>0.6%</td>
</tr>
</table>
</div>
<div class="snippet">
<p>The <b>most popular TLD for typed domains is .com</b>, followed by .org, .net, and .de.</p>
<p><img src="http://www.chrisfinke.com/files/2011/07/tld-popularity.png" alt="" title="TLD Popularity" width="457" height="354" align="left" style="margin-right: 20px;" /></p>
<table class="data" style="width: 280px;">
<tr>
<td>.com</td>
<td>63%</td>
</tr>
<tr>
<td>.org</td>
<td>4%</td>
</tr>
<tr>
<td>.net</td>
<td>4%</td>
</tr>
<tr>
<td>.de</td>
<td>4%</td>
</tr>
<tr>
<td>.ru</td>
<td>2%</td>
</tr>
<tr>
<td>.hu</td>
<td>1%</td>
</tr>
<tr>
<td>.fr</td>
<td>1%</td>
</tr>
<tr>
<td>.co.uk</td>
<td>1%</td>
</tr>
<tr>
<td>.br</td>
<td>1%</td>
</tr>
</table>
<p><br style="clear: both;" /></p>
</div>
<div class="snippet">
<p>The <b>top 17 <abbr title="Top-level domain">TLD</abbr> typos</b> are all variations of .com. In order of frequency, they are <b>.com\, .ocm, .con, .cmo, .copm, .xom, &#8220;.com,&#8221;, .vom, .comn, .com&#8217;, &#8220;.co,&#8221;, .comj, .coim, .cpm, .colm, .conm, and .coom</b>.</p>
</div>
<div class="snippet">
<p>The website that appears to benefit the most from users mistyping a legitimate URL is <b>faceboook.com</b> (count the o&#8217;s). It&#8217;s a scammy website set up to make you think that you have been chosen as a &#8220;Facebook Winner.&#8221; However, it is only typed once for every 7,930 times that someone correctly types <b>facebook.com</b>. (<b><a href="http://googe.com/">googe.com</a></b> and <b><a href="http://goole.com">goole.com</a></b> are runners-up in this category, albeit with much less scammy sites in place than faceboook.com.)</p>
</div>
<div class="snippet">
<p style="text-align: center;"><img src="http://www.chrisfinke.com/files/2011/07/www-vs-nowww.png" alt="" title="Leading www. vs no www." width="469" height="323" /><br /><b>49.5% of domains</b> are typed with a <b>leading &#8220;www.&#8221;</b>.</p>
</div>
<div class="snippet">
<p>The <b>most popular non-.com/.net/.org domains</b>: google.de, vkontakte.ru (a Russian social network), and google.fr.</p>
</div>
<div class="snippet">
<p>The only <b>locales where neither Google nor Facebook control the most popular domain</b> are <b>ru-RU</b> (Russia &#8211; vkontakte.ru), <b>fi-FI</b> (Finland &#8211; aapeli.com, a gaming website), <b>ko-KR</b> (Korea &#8211; fomos.kr, an e-sports website), and <b>zh-CN</b> (China &#8211; baidu.com).</p>
</div>
<div class="snippet">
<p>How does <b>domain length</b> correlate with typing frequency?</p>
<p><img src="http://www.chrisfinke.com/files/2011/07/domain-length-vs-frequency.png" alt="Domain Length vs Frequency Graph" title="Domain Length vs Frequency" width="772" height="373" /></p>
<p>(Facebook is to thank for the spike at 12 characters.)</p>
</div>
<div class="snippet">
<p>How about <b>alphabetical order</b>? Has the old trick of choosing a site name early in the alphabet in order to show up above the fold on DMOZ had any lasting effect?</p>
<p><img src="http://www.chrisfinke.com/files/2011/07/domain-alpha-vs-frequency.png" alt="" title="Domain Alphabetization vs Frequency" width="780" height="374" /></p>
<p>Facebook and Google certainly make their letters stand out, but there doesn&#8217;t appear to be a correlation between the first letter of the domain and its popularity.</p>
</div>
<div class="snippet">
<p><b>None of the domains with more than a 0.0005% share are unregistered</b>, indicating that this kind of usage data would not be very useful to a scammer or phisher looking for new domain names.</p>
</div>
 <img src="http://www.chrisfinke.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=2104" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.chrisfinke.com/2011/07/25/what-do-people-type-in-the-address-bar/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>Announcing Typo.js: Client-side JavaScript Spellchecking</title>
		<link>http://www.chrisfinke.com/2011/03/31/announcing-typo-js-client-side-javascript-spellchecking/</link>
		<comments>http://www.chrisfinke.com/2011/03/31/announcing-typo-js-client-side-javascript-spellchecking/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 13:00:52 +0000</pubDate>
		<dc:creator>Christopher Finke</dc:creator>
				<category><![CDATA[Browser Add-ons]]></category>
		<category><![CDATA[Comment Snob]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Mozilla Firefox]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[YouTube Comment Snob]]></category>

		<guid isPermaLink="false">http://www.chrisfinke.com/?p=1978</guid>
		<description><![CDATA[In which I spend lots of time on something that will eventually be made obsolete by a Chrome extension API.]]></description>
			<content:encoded><![CDATA[<p>When I first ported <a href="/addons/youtube-comment-snob">YouTube Comment Snob</a> to Chrome, Chrome&#8217;s lack of a spellchecking API for extensions meant that I would be unable to implement Comment Snob&#8217;s most popular and distinguishing feature: the ability to filter out comments based on spelling mistakes.  That, my friend, is about to change.</p>
<p>I&#8217;ve finished work on the first version of a client-side spellchecker written entirely in JavaScript, and I&#8217;m calling it <a href="https://github.com/cfinke/Typo.js">Typo.js</a>. Its express purpose is to allow Chrome extensions to perform spellchecking, although there&#8217;s no reason it wouldn&#8217;t work in other JavaScript environments. (Don&#8217;t use it for Firefox extensions though; use <a href="https://developer.mozilla.org/en/Using_spell_checking_in_XUL">Firefox&#8217;s native spellchecking API.</a>)</p>
<h2>How does it work?</h2>
<p>Typo.js uses <a href="http://hunspell.sourceforge.net/">Hunspell</a>-style dictionaries &#8211; the same ones used in the spellcheckers of OpenOffice.org and Firefox.  (Typo.js ships with the latest American English dictionary, but you could add any number of other dictionary files to it yourself.)  You initialize a Typo.js instance in one of two ways:</p>
<h3>Method #1</h3>
<pre>
var dictionary = new Typo("en_US");
</pre>
<p>This tells Typo.js to load the dictionary represented by two files in the <code>dictionaries/en_US/</code> directory: en_US.aff and en_US.dic.  The .aff file is an affix file: a list of rules for creating multiple forms of a word by adding prefixes and suffixes. The .dic file is the dictionary file: a list of root words and the affix rules that apply to them.  Typo parses these files and generates a complete dictionary by applying the applicable affix rules to the list of root words.</p>
<h3>Method #2</h3>
<pre>
var dictionary = new Typo("en_US", affData, dicData);
</pre>
<p>With this initialization method, you supply the data from the affix and dictionary files.  This method is preferable if you wish to change the location of the affix and dictionary files or if you are using Typo.js in an environment other than a Chrome extension, such as in a webpage or in a server-side JavaScript environment.</p>
<p>Once you&#8217;ve initialized a Typo instance, you can use it to check whether a word is misspelled:</p>
<pre>
var is_correct_spelling = dictionary.check("mispelled");
</pre>
<h2>Customization</h2>
<p>Depending on your needs, you can configure Typo.js to perform word lookups in one of two ways:</p>
<ol>
<li>hash: Stores the dictionary words as the keys of a hash and does a key existence check to determine whether a word is spelled correctly. Lookups are very fast, but this method uses more memory.</li>
<li>binary search: Concatenates dictionary words of identical length into sets of long strings and uses binary search in these strings to check whether a word exists in the dictionary. It uses less memory than the hash implementation, but lookups are slower.</li>
</ol>
<p>See <a href="http://ejohn.org/blog/revised-javascript-dictionary-search/">this blog post by John Resig</a> for a more detailed exploration of possible dictionary representations in JavaScript.</p>
<h2>Practice vs. Theory</h2>
<p>Typo.js is already in use in my <a href="https://chrome.google.com/webstore/detail/gfbnmebccmipejnnlcaenkhfhniaielg">Comment Snob</a> extension.  You can install it today to experience Typo.js in action, filtering comments on YouTube based on the number of spelling mistakes in each one.</p>
<h2>What&#8217;s next for Typo.js?</h2>
<p>The next step is adding support for returning spelling suggestions; right now, all Typo.js can do is tell you whether a word is spelled correctly or not. It also needs to support Hunspell&#8217;s compound word rules.  These are the rules that a spellchecker uses to determine whether words like &#8220;100th&#8221;, &#8220;101st&#8221;, &#8220;102th&#8221; are correct spellings (yes, yes, and no, for those of you keeping track) since it would be impossible to precompute a list of all possible words of these forms.</p>
<p>The Typo.js code is available on <a href="https://github.com/cfinke/Typo.js">GitHub</a>. I welcome any and all suggestions or code contributions.</p>
 <img src="http://www.chrisfinke.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=1978" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.chrisfinke.com/2011/03/31/announcing-typo-js-client-side-javascript-spellchecking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ok, now store it in the mouse&#8230;</title>
		<link>http://www.chrisfinke.com/2007/08/27/ok-now-store-it-in-the-mouse/</link>
		<comments>http://www.chrisfinke.com/2007/08/27/ok-now-store-it-in-the-mouse/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 20:28:12 +0000</pubDate>
		<dc:creator>Christopher Finke</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.chrisfinke.com/2007/08/27/ok-now-store-it-in-the-mouse/</guid>
		<description><![CDATA[The other day, I overheard an older relative refer to the act of copying and pasting something as &#8220;storing it in the mouse.&#8221; I had never thought of it that way before, but that is probably how it appears to new computer users. I know that when I press Ctrl+C, I automatically hold my hands [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, I overheard an older relative refer to the act of copying and pasting something as &#8220;storing it in the mouse.&#8221;  I had never thought of it that way before, but that is probably how it appears to new computer users.  </p>
<p>I know that when I press Ctrl+C, I automatically hold my hands differently until I hit Ctrl+V, so I might as well be storing that data in my left hand.  Occasionally, while I&#8217;m typing, I&#8217;ll realize that I&#8217;m feeling a little tense and I don&#8217;t know why.  Usually, it turns out that I copied something and never needed to paste it.  </p>
<p>Does anyone else alter their posture based on the contents of their clipboard?</p>
 <img src="http://www.chrisfinke.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=448" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.chrisfinke.com/2007/08/27/ok-now-store-it-in-the-mouse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

