<?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>Hash Collisions</title>
	<atom:link href="http://www.hashcollisions.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hashcollisions.com</link>
	<description>Software development, usability, and digital culture</description>
	<lastBuildDate>Thu, 26 Jan 2012 16:13:04 +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>Dopey, the Folder-Selection Annoyance</title>
		<link>http://www.hashcollisions.com/2012/01/dopey-the-folder-selection-annoyance/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dopey-the-folder-selection-annoyance</link>
		<comments>http://www.hashcollisions.com/2012/01/dopey-the-folder-selection-annoyance/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 05:28:22 +0000</pubDate>
		<dc:creator>Andres</dc:creator>
				<category><![CDATA[For technical audiences]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[user interfaces]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.hashcollisions.com/?p=27</guid>
		<description><![CDATA[Just about every Windows program prompts a user to select a file for some purpose, such as through the Open File dialog window: &#160; I&#8217;ll call this kind of window &#8220;Opie&#8221; for the rest of this article.  Occasionally, a program will prompt a user not for a file, but for a folder.  In such cases [...]]]></description>
			<content:encoded><![CDATA[<p>Just about every Windows program prompts a user to select a file for some purpose, such as through the <strong>Open File</strong> dialog window:</p>
<p><a href="http://www.hashcollisions.com/wp-content/uploads/2012/01/Opie5001.png"><img class="alignnone size-full wp-image-33" title="Opie" src="http://www.hashcollisions.com/wp-content/uploads/2012/01/Opie5001.png" alt="" width="500" height="370" /></a></p>
<p>&nbsp;</p>
<p>I&#8217;ll call this kind of window &#8220;<strong>Opie</strong>&#8221; for the rest of this article.  Occasionally, a program will prompt a user not for a file, but for a folder.  In such cases programs will typically bring up the <strong>Folder Selection</strong> dialog window, which I&#8217;ll call &#8220;<strong>Dopey</strong>&#8220;:</p>
<p><a href="http://www.hashcollisions.com/wp-content/uploads/2012/01/Dopey.png"><img class="alignnone size-full wp-image-30" title="Dopey" src="http://www.hashcollisions.com/wp-content/uploads/2012/01/Dopey.png" alt="Select Folder dialog window from a program in Windows 7" width="347" height="384" /></a></p>
<p>&nbsp;</p>
<p>Had I never known Opie, I might not dislike Dopey.  Since I do, however, I find Dopey to be a vastly inferior and annoying UI element, for several reasons:</p>
<p><strong>1. Dopey can&#8217;t get to a folder directly.</strong>  Most of my files are nested four or five levels down from My Documents.  When I&#8217;m working on a project, I&#8217;ll typically have one or more of these level-4 folders open in Windows Explorer.  When I need to open one of these folders&#8217; files from a Windows program [1], I&#8217;ll typically copy the folder path from Windows Explorer,  paste it into Opie&#8217;s &#8220;File Name&#8221; field, and press Enter.  <em>Voilà</em>, I&#8217;m now looking at the folder I want, and can select the file I need.  Dopey doesn&#8217;t let me cut and paste a path like this.  (Some programs complement Dopey with a field where a path can be typed or pasted, which helps a bit.  Most programs, however, leave you alone with the klutz.)</p>
<p><strong>2. Dopey can leave me disoriented.</strong>  Dopey provides very little context to let me get my bearings inside the file system.  I often find myself looking at a list of neighboring subfolders, without any idea of who their parent is:</p>
<p><a href="http://www.hashcollisions.com/wp-content/uploads/2012/01/Dopey-Heritage.png"><img class="alignnone size-full wp-image-34" title="Dopey-Heritage" src="http://www.hashcollisions.com/wp-content/uploads/2012/01/Dopey-Heritage.png" alt="" width="347" height="384" /></a></p>
<p>&nbsp;</p>
<p>If I want to determine a folder&#8217;s parent, I&#8217;ll have to scroll a bit, and scroll quite a bit further if I need to determine its complete ancestry.  Once I determine the full path, I&#8217;ll have to scroll back to my original location (if I can find it).  Opie, on the other hand, lets me determine the full path (without getting lost in the process) by clicking on a drop-down arrow: [2]</p>
<p><a href="http://www.hashcollisions.com/wp-content/uploads/2012/01/Opie-Heritage1.png"><img class="alignnone size-full wp-image-36" title="Opie-Heritage" src="http://www.hashcollisions.com/wp-content/uploads/2012/01/Opie-Heritage1.png" alt="" width="379" height="240" /></a></p>
<p>&nbsp;</p>
<p><strong>3. Dopey makes me stumble my way down into the file system.</strong>  Navigating the file system with Dopey is cumbersome.  I start out with a little window displaying just a few folders.  I have to switch between clicking, scrolling vertically, and scrolling horizontally as I dig down into the file system.  With Opie, on the other hand, I can often get where I want  just by double clicking, often without any scrolling.  [3]</p>
<p>I&#8217;ve run into a few programs that show me Opie instead of Dopey when prompting for a folder.  I wish more Windows programs did this (hear ye, hear ye, Windows application developers!)  Ultimately, I hope (in vain?) that Dopey will be deprecated by Microsoft, banished from our UIs, and sent to join <a title="Clippy" href="http://en.wikipedia.org/wiki/Clippy">Clippy</a> in exile.</p>
<p>&nbsp;</p>
<p><strong> Notes:</strong></p>
<p>[1] Yes, most files can be opened by double-clicking them in Windows Explorer.  However, I still find myself using File -&gt; Open pretty frequently.  Somehow it&#8217;s more convenient than Explorer at times.</p>
<p>[2] For some programs in Windows 7, you don&#8217;t even a need to click a drop-down, since Opie looks just like Windows Explorer, and includes an address bar.</p>
<p>[3] This is due to the fact that Opie displays only a single level of subfolders at a time, and can display them in a multi-column list, which reduces the need to scroll or enlarge the dialog window.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hashcollisions.com/2012/01/dopey-the-folder-selection-annoyance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A better use for 4.5 billion dollars</title>
		<link>http://www.hashcollisions.com/2011/07/a-better-use-for-4-5-billion-dollars/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-better-use-for-4-5-billion-dollars</link>
		<comments>http://www.hashcollisions.com/2011/07/a-better-use-for-4-5-billion-dollars/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 04:56:49 +0000</pubDate>
		<dc:creator>Andres</dc:creator>
				<category><![CDATA[For general audiences]]></category>
		<category><![CDATA[fairness]]></category>
		<category><![CDATA[innovation]]></category>
		<category><![CDATA[patents]]></category>
		<category><![CDATA[software patents]]></category>

		<guid isPermaLink="false">http://www.hashcollisions.com/?p=25</guid>
		<description><![CDATA[I am shocked by the recent winning bid for Nortel&#8217;s patent portfolio.  4.5 billion U. S. dollars.  In cash! More than shocked, I am saddened to see such a large sum squandered like this.  These patents won&#8217;t spur on innovation.  They won&#8217;t make their new owners into better companies.  At best, they&#8217;ll serve as (unreliable) [...]]]></description>
			<content:encoded><![CDATA[<p>I am shocked by the <strong>recent <a href="http://www.marketwatch.com/story/nortel-announces-the-winning-bidder-of-its-patent-portfolio-for-a-purchase-price-of-us45-billion-2011-06-30">winning bid</a></strong> for Nortel&#8217;s <strong>patent portfolio</strong>.  <strong>4.5 billion</strong> U. S. dollars.  <strong>In cash!</strong></p>
<p>More than shocked, I am saddened to see such a large sum <strong>squandered</strong> like this.  These patents <strong>won&#8217;t spur on innovation</strong>.  They won&#8217;t make their new owners into better companies.  At best, they&#8217;ll serve as (unreliable) <strong>insurance</strong> against the artificial, <strong>legally-facilitated disasters</strong> known as <strong>patent-infringement lawsuits</strong>.  At worst, these patents will act as a <strong>weapon of mass destruction</strong>, one that can inflict the same kind of fear and damage it&#8217;s supposed to guard against.  They&#8217;re a weapon to be <strong>aimed at competitors</strong>&#8230; and ultimately at <strong>society itself</strong>.  (Likely cost to society: more monopolies, narrower concentration of economic power, damage to or destruction of innovative companies that provide great value and wealth, among other costs.)</p>
<p>Seriously, <strong>what a waste!</strong> Those $4.5 billion <strong>could be used instead to jump-start true innovation</strong>.  If that sum were used to pay $100,000-a-year software-developer salaries, it <strong>could fund 45,000 developers for a year</strong>, or<strong> 9,000 developers for five years</strong>.  What if those developers created <strong>software startup companies</strong>?  How many startups would that be?  How many <strong>new products and services</strong> would they give back to society?  To what degree would they doubtlessly <strong>stimulate the economy</strong>?  This is just one way in which such massive economic power could be used for good.  Surely there are other worthwhile possibilities&#8230;  But none of them will take place, in this case.</p>
<p>This <strong>$4.5-billion loss</strong> was <strong>enabled by the decrepit patent system</strong> currently in place in the U. S. (and possibly Canada.)  Lawmakers: Please <strong>consider abolishing software patents</strong> (and whatever is equivalent in practice to a software patent.)  Your society will be much better off.  Also, please take a hard look at other kinds of patents.  Ruthlessly question whether they truly foster innovation rather than litigation.  Do not give them the benefit of the doubt.</p>
<p><em>(<strong>Note:</strong> Some readers might protest my meddling, since I do not live in the United States nor Canada. However, U. S. laws in particular have a disproportionate influence on the rest of the world, for better or worse.  It is hard to remain respectfully silent, even for someone who is not directly a U. S. constituent.  In any case, I care about the whole world, and that includes caring about the U. S. and its well-being.)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hashcollisions.com/2011/07/a-better-use-for-4-5-billion-dollars/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can bcrypt&#8217;s computational expense be reduced on the server side?</title>
		<link>http://www.hashcollisions.com/2011/06/can-bcrypts-computational-expense-be-reduced-on-the-server-side/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=can-bcrypts-computational-expense-be-reduced-on-the-server-side</link>
		<comments>http://www.hashcollisions.com/2011/06/can-bcrypts-computational-expense-be-reduced-on-the-server-side/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 16:02:45 +0000</pubDate>
		<dc:creator>Andres</dc:creator>
				<category><![CDATA[For technical audiences]]></category>
		<category><![CDATA[bcrypt]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.hashcollisions.com/?p=22</guid>
		<description><![CDATA[(Caution: Amateur security research ahead.  Using it in a live system is not recommendable.) I recently read “How to Safely Store a Password”, an article by Coda Hale. For years I&#8217;ve thought that salting and hashing passwords with MD5 or SHA-1 prior to storage was sufficient to thwart password-cracking efforts (in cases where the user-account [...]]]></description>
			<content:encoded><![CDATA[<p><em>(<strong>Caution:</strong> Amateur security research ahead.  Using it in a live system is not recommendable.)</em></p>
<p>I recently read “<a title="How to Safely Store a Password" href="http://codahale.com/how-to-safely-store-a-password/">How to Safely Store a Password</a>”, an article by Coda Hale.  For years I&#8217;ve thought that salting and hashing passwords with MD5 or SHA-1 prior to storage was sufficient to thwart password-cracking efforts (in cases where the user-account database table is stolen or publicly divulged).  Apparently, this approach is not much better than simply storing plaintext passwords (a practice widely scoffed at).  It was fascinating to find out about a better approach, that of using <a href="http://en.wikipedia.org/wiki/Bcrypt">bcrypt</a> instead of ordinary hash functions.  Unfortunately, it seems to me that bcrypt creates a new problem even as it solves an old one&#8230;</p>
<p><strong>The New Problem</strong></p>
<p>The use of bcrypt turns password-cracking into a computationally-prohibitive task for attackers.  However, bcrypt also hurts defenders, for whom password-hash generation or verification is now much more expensive than with ordinary hash functions.  A popular online service having thousands of users might need to acquire additional processing power simply to process user log-ins.  Moreover, by using bcrypt a service would become more vulnerable to denial-of-service attacks.  Attackers could tie up its servers&#8217; CPUs through numerous, automated log-in attempts. (These would make the servers call bcrypt repeatedly, once for each of the many log-in requests.)  Addressing this threat would seem to require problematic tradeoffs between security, cost and convenience.</p>
<p>Could there be a way of lowering a service&#8217;s computational bill while retaining bcrypt&#8217;s advantages?  This article presents a system which might accomplish this.  I haven&#8217;t heard of this approach and would like to know if I&#8217;m on to something (or if others have already devised equivalent systems).  Be forewarned, I am not a computer-security expert.  (Thank you for reading this article anyway.)</p>
<p><strong>A Potential Solution</strong></p>
<p>The following protocol attempts to reduce the frequency with which bcrypt is called by an online server.  It ensures that clients also pay for the cost of using bcrypt.  (The server still has to pay, but the client now has to “split” the computational bill with it.  This could reduce the appeal and effectiveness of brute-force or dictionary attacks on live systems.)  This protocol redesigns the account-creation, account-log-in, and password-reset processes for an online service.</p>
<p><strong>Account Creation</strong></p>
<ol>
<li> Joe Turing, a user (or a bot, 	perhaps), visits the account-creation page for SecureR, a 	hypothetical (yet surprisingly-popular) online service.</li>
<li>Turing types in his desired 	username and password and submits them (securely) to SecureR.</li>
<li>The SecureR server creates a 	bcrypted hash from the password, using a random salt value and the 	cost parameter currently mandated by  SecureR&#8217;s security policy.</li>
<li>The username, password, salt, 	cost, and bcrypted hash are stored in a record in SecureR&#8217;s 	user-account table.  The record also includes at least two 	verification fields.  One indicates whether the password hash has 	been verified (successfully computed by the client).  The other 	indicates whether the account as a whole has been verified.  Both 	fields are initially set to “false”.</li>
<li>SecureR sends the salt and cost 	parameters used to bcrypt Turing&#8217;s password back to Turing.</li>
<li>Turing (that is, his web browser) 	computes the bcrypt hash corresponding to his password and submits 	it to SecureR.</li>
<li>SecureR compares Turing&#8217;s hash 	with the hash previously computed by SecureR itself.  If the two 	hashes match, the password-hash-verification field is set to “true”.</li>
<li>Once other essential checks (such 	as e-mail-address verification) have been successfully performed the 	account-verification field is to “true”.  Turing&#8217;s account is 	now fully verified and active, and he can start using SecureR&#8217;s 	services.  (For now I won&#8217;t suggest when and where additional 	verification steps should take place, since bcrypt is my focus 	here.)</li>
</ol>
<p><strong>Account Log-in</strong></p>
<ol>
<li> Turing types his username and 	password into the SecureR log-in page.</li>
<li>Turing&#8217;s browser sends his 	username to SecureR.</li>
<li>SecureR looks up the salt and cost 	parameters contained in Turing&#8217;s user-account record.</li>
<li>SecureR sends the salt and cost 	values to Turing&#8217;s browser.</li>
<li>The browser uses these parameters 	and Turing&#8217;s typed-in password to generate the bcrypt hash for 	Turing&#8217;s password.</li>
<li>The browser submits Turing&#8217;s 	username and bcrypted hash to SecureR.</li>
<li>SecureR directly compares the hash 	submitted by Turing with the one stored in his user record.  If they 	match, account access is granted.</li>
</ol>
<p><strong>Password Reset</strong></p>
<ol>
<li> Turing types his username into 	SecureR&#8217;s password reset page and clicks the Submit button.</li>
<li>SecureR sends a verification link 	to Turing&#8217;s e-mail address.  (This link is to verify that Turing 	himself initiated the reset process.  This password-reset system 	never generates nor sends temporary passwords to the service&#8217;s 	users.)</li>
<li>Turing checks his e-mail, and 	opens up the link with his web browser.</li>
<li>The page brought up by the browser 	has a password field, into which Turing enters his new password and 	clicks on a Submit button.</li>
<li>The password is hashed and 	verified using a process analogous to steps 3 through 8 in the 	account-creation process.</li>
</ol>
<p><strong>Observations</strong></p>
<p>According to this protocol, SecureR&#8217;s server only runs bcrypt when an account is created or when a password is reset.  During log-in attempts, it is the client (Turing&#8217;s browser) and not the server which runs bcrypt.  The server performs a computationally-inexpensive direct comparison between the client-submitted hash and the hash stored in its database.  Thus the server avoids paying the bcrypt bill when processing a log-in request.  (In theory, the client could also avoid calling bcrypt during log-ins.  The bcrypt hash could be stored by the client after generating it during the account-creation phase.  The client wouldn&#8217;t necessarily have to recompute the hash each time the user logs in.  In practice, it&#8217;d be easier to design the client-side code so that it recomputes the bcrypt hash based on the user&#8217;s plaintext password, rather than dealing with hash storage and retrieval.  The bcrypt-induced client-side log-in delay is tolerable to each individual user anyway.)</p>
<p>Relocating bcrypt invocations from a frequent process (account log-in) to other, less frequent processes (account-creation and password-resets) reduces the risk of a successful DoS attack.  It doesn&#8217;t eliminate the risk completely, though.  The account-creation and password-reset processes are the new weak spots, and must be hardened.  This is why the password-reset process is more complex (and mildly annoying to legitimate users) under this protocol.  Additional security methods (such as CAPTCHAs and rate-limiting) could also help harden the system against attack.</p>
<p><strong>A Request for Feedback</strong></p>
<p>My proposed protocol omits certain security-related details which would be important in a production system.  I&#8217;ve also omitted some tweaks which could further improve the protocol&#8217;s security.  However, I&#8217;d first like to make sure that this protocol is essentially sound.  Please let me know if you find any logic errors or problematic side-effects I&#8217;ve failed to account for.  As I said before, I am not a computer-security professional, and would appreciate assistance from others who are further along.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hashcollisions.com/2011/06/can-bcrypts-computational-expense-be-reduced-on-the-server-side/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Facebook, the Island of the Lotus-Eaters</title>
		<link>http://www.hashcollisions.com/2011/06/facebook-the-island-of-the-lotus-eaters/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=facebook-the-island-of-the-lotus-eaters</link>
		<comments>http://www.hashcollisions.com/2011/06/facebook-the-island-of-the-lotus-eaters/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 04:30:55 +0000</pubDate>
		<dc:creator>Andres</dc:creator>
				<category><![CDATA[For general audiences]]></category>
		<category><![CDATA[digital culture]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://www.hashcollisions.com/?p=19</guid>
		<description><![CDATA[Last night I watched Percy Jackson &#38; the Olympians: The Lightning Thief on TV.  (Beware, spoilers ahead.) This moderately-entertaining movie cleverly incorporates a number of elements from Greek mythology.  One of them is the island of the lotus-eaters, reimagined as a casino. Percy Jackson and his two sidekicks need to visit this casino to look for [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I watched <a href="http://en.wikipedia.org/wiki/Percy_Jackson_%26_the_Olympians:_The_Lightning_Thief">Percy Jackson &amp; the Olympians: The Lightning Thief</a> on TV.  <strong>(Beware, spoilers ahead.)</strong> This moderately-entertaining movie cleverly incorporates a number of elements from Greek mythology.  One of them is the <a href="http://en.wikipedia.org/wiki/Lotus_eaters">island of the lotus-eaters</a>, reimagined as a casino. Percy Jackson and his two sidekicks need to visit this casino to look for a special, hidden jewel.  At the casino, they are persistently offered and keep consuming some unusual, mind-altering appetizers.  The addictive <em>hors d&#8217;oeuvres</em> make them forget why they were there and what their mission was.  After a long time they manage break out of their stupor, retrieve the jewel, and resume their quest.</p>
<p>Sometime after watching this scene, I was struck by the realization that Facebook is like the island of the lotus-eaters to me.  I usually log in with a definite purpose in mind, such as looking up an old friend or confirming an invitation to an event.  However, immediately after logging in and before I know it, I find myself scanning through the News Feed, looking at random, yet interesting tidbits about friends and old-time acquaintances.  Many minutes will pass&#8230;  Once I finally realize what I&#8217;ve been doing and break out of the hypnotic effect, I&#8217;ll typically have forgotten why I initially logged in.  It takes me a couple of minutes to remember.</p>
<p>Facebook is not the only &#8220;island of the lotus-eaters&#8221;, but it is a very striking example.  The digital world is full of such islands.  It takes superhuman levels of self-discipline to stop landing on those islands or binging on lotuses.  Yet there are more important and substantial things, and I must resume my quest&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hashcollisions.com/2011/06/facebook-the-island-of-the-lotus-eaters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Solomonic Response to Username Disputes</title>
		<link>http://www.hashcollisions.com/2011/04/a-solomonic-response-to-username-disputes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-solomonic-response-to-username-disputes</link>
		<comments>http://www.hashcollisions.com/2011/04/a-solomonic-response-to-username-disputes/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 07:03:18 +0000</pubDate>
		<dc:creator>Andres</dc:creator>
				<category><![CDATA[For general audiences]]></category>
		<category><![CDATA[digital culture]]></category>
		<category><![CDATA[fairness]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://www.hashcollisions.com/?p=16</guid>
		<description><![CDATA[In recent months, I&#8217;ve read of the following scenario playing out on a couple of different occasions [1]: Person “So-and-So” chooses “CleverName” as their username on social-media service “Socialr” [2]. CleverName is So-and-So&#8217;s favorite pseudonym, a word or phrase with a personally-significant meaning. So-and-So starts using Socialr, and over a period of time builds up [...]]]></description>
			<content:encoded><![CDATA[<p>In recent months, I&#8217;ve read of the following scenario playing out on a couple of different occasions <a id="jump1" href="#note1">[1]</a>:</p>
<p><em>Person “So-and-So” chooses “CleverName” as their username on social-media service “Socialr” <a id="jump2" href="#note2">[2]</a>.  CleverName is So-and-So&#8217;s favorite pseudonym, a word or phrase with a personally-significant meaning.  So-and-So starts using Socialr, and over a period of time builds up a digital identity on Socialr, an identity whose name, content, history, and reputation are associated with username CleverName.  Some time later, a little-known company, “Company X”, comes along and wants to create an account on Socialr.  That company happens to be named or have a product named “CleverName”.  Company X asks Socialr to take username CleverName from So-and-So and give it to them.  Socialr seizes CleverName from So-and-So and gives it to Company X as their username.</em></p>
<p>This kind of situation is likely to become more common as thousands of individuals and companies (and their respective pseudonyms and brand names) start joining the same, popular, social-media platforms.  Here&#8217;s one idea for ethical primary responses to username disputes.  Maybe it&#8217;ll help social-media services get these things right. <a id="jump3" href="#note3">[3]</a></p>
<p>Let&#8217;s start by giving both So-and-So and Company X the benefit of the doubt.  I&#8217;ll assume that none of them knew of the others existence until they clashed at Socialr.  Neither one intended to leech off the other&#8217;s preexisting reputation or name recognition.  They were each independently creative when they chose their pseudonym or company name (though obviously their creative processes ran along similar lines).  With that in mind, I&#8217;d say the default response for Socialr should be to let So-and-So keep CleverName as their username.  Social-media service users should be able to choose a username without the fear that someday it could be unpredictably seized from them through no fault of their own.  A person shouldn&#8217;t have to perform a preemptive, exhaustive search for any little company out there that might one day want to use the same username on the same service.  Once a person has a username, they should be able to start building a digital identity around it without worry.  If the preservation of one&#8217;s digital identity can&#8217;t be guaranteed by a social-media service, why should anyone invest in creating a digital identity there in the first place?</p>
<p>Unfortunately, not every individual or company always acts innocently in these matters.  Motives can be hard to determine (though I&#8217;d sooner question companies&#8217; selflessness and interest in the common good than individuals&#8217;).  Also, social-media services are subject to regrettable legal climates and the threats and fears they spread around.  A social-media service may feel like its hands are tied and it&#8217;s limited to a particular kind of resolution (usually one in favor of the company—the entity with typically greater financial and legal resources than the individual).  That&#8217;s where a Solomonic response could come in handy, one that would require a modicum of courage on the social-media service&#8217;s part.  Socialr could tell Company X: “You claim that So-and-So is abusing your trademarks by using username CleverName, a username you also want.  It doesn&#8217;t look like So-and-So is using CleverName that way, but to be on the safe side we&#8217;ll remove username CleverName from our system.  <span style="text-decoration: underline;">Neither you, nor So-and-So, nor anyone else</span> will get to use CleverName as their username.  Now each of you, go find new usernames.” <a id="jump4" href="#note4">[4]</a></p>
<p>Such a policy would be far from satisfying, yet its sole existence could help reduce incidences of username disputes.  Companies would know that no matter what happens, they can never expropriate a username on a social-media service.  At best they could keep a person from using that username, but they&#8217;d never get to use it themselves.  Given the little gain and the risk of negative publicity from username-elmination requests, companies would likely resort to them only in very clear cases of trademark abuse.  In other instances, companies would have to behave more like everyday, individual users.  Most of us, when we go choose a username on any service, find that our first choice is already taken, oftentimes <span style="text-decoration: underline;">even our very own, legal names</span>.  We have to come up with different usernames.  It could end up being the same for companies.</p>
<p><strong>Notes</strong></p>
<ol>
<li><a id="note1"></a>The two incidents I read about involve <a href="http://mailright.co.uk/email-marketing-articles/How-safe-is-your-Twitter-name/">girlgeeks on Twitter</a> and <a href="http://www.zephoria.org/thoughts/archives/2011/04/27/tumblr-disappeared-me.html">zephoria on Tumblr</a>.  <a href="#jump1">[go back]</a></li>
<li><a id="note2"></a>“Socialr” is a <a href="http://en.wikipedia.org/wiki/Placeholder_name">placeholder name</a> for the quintessential social-media service.   A quick, non-exhaustive Google search did not turn up an actual service with that name at the time of this writing. <a href="#jump2">[go back]</a></li>
<li><a id="note3"></a>Not every conceivable kind of dispute is addressed by this proposal.  Some kinds of disputes call for very different responses that those covered in this essay. <a href="#jump3">[go back]</a></li>
<li><a id="note4"></a>This proposal doesn&#8217;t perfectly parallel <a href="http://en.wikipedia.org/wiki/Solomonic_decision">the original, Solomonic decision</a>.  However, it does attempt to cleverly elicit a fair outcome from a thorny, contentious situation. <a href="#jump4">[go back]</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.hashcollisions.com/2011/04/a-solomonic-response-to-username-disputes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An immediate hiatus</title>
		<link>http://www.hashcollisions.com/2011/04/an-immediate-hiatus/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=an-immediate-hiatus</link>
		<comments>http://www.hashcollisions.com/2011/04/an-immediate-hiatus/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 06:27:15 +0000</pubDate>
		<dc:creator>Andres</dc:creator>
				<category><![CDATA[For general audiences]]></category>
		<category><![CDATA[metablogging]]></category>

		<guid isPermaLink="false">http://www.hashcollisions.com/?p=14</guid>
		<description><![CDATA[As is evident to anyone checking in, I&#8217;ve so far failed to keep up with my initial, modest goal of writing once a month.  Last year was a demanding year&#8230;  We&#8217;ll see about this one. As happened with my inaugural article, strong sentiments drew out an article from me, this very night.  I&#8217;ll post it [...]]]></description>
			<content:encoded><![CDATA[<p>As is evident to anyone checking in, I&#8217;ve so far failed to keep up with my initial, modest goal of writing once a month.  Last year was a demanding year&#8230;  We&#8217;ll see about this one.</p>
<p>As happened with my inaugural article, strong sentiments drew out an article from me, this very night.  I&#8217;ll post it very soon.  Perhaps others will follow it&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hashcollisions.com/2011/04/an-immediate-hiatus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Collide world!</title>
		<link>http://www.hashcollisions.com/2010/05/collide-world/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=collide-world</link>
		<comments>http://www.hashcollisions.com/2010/05/collide-world/#comments</comments>
		<pubDate>Thu, 20 May 2010 07:33:52 +0000</pubDate>
		<dc:creator>Andres</dc:creator>
				<category><![CDATA[For general audiences]]></category>
		<category><![CDATA[metablogging]]></category>

		<guid isPermaLink="false">http://www.hashcollisions.com/?p=5</guid>
		<description><![CDATA[Hello, world!  My name is Andrés Cabezas Ulate.  Yesterday, as I was reading one of my favorite blogs, I came across the straw that broke the writer&#8217;s block.  Long have I waited to share various ideas with the world.  I&#8217;ve been inching along with my methodical publication plans.  Today, though, I decided to go for [...]]]></description>
			<content:encoded><![CDATA[<p>Hello, world!  My name is Andrés Cabezas Ulate.  Yesterday, as I was reading <a title="Coding Horror" href="http://www.codinghorror.com" target="_self">one of my favorite blogs</a>, I came across the <a title="How To Achieve Ultimate Blog Success In One Easy Step" href="http://www.codinghorror.com/blog/2007/10/how-to-achieve-ultimate-blog-success-in-one-easy-step.html" target="_self">straw that broke the writer&#8217;s block</a>.  Long have I waited to share various ideas with the world.  I&#8217;ve been inching along with my methodical publication plans.  Today, though, I decided to go for broke, and jump-start one of the blogs I had envisioned.  A quick WordPress installation here, some minor customization there, and here we go!  Oh, and we musn&#8217;t forget the choice of a clever-but-hokey name for my blog, of course.  (Don&#8217;t worry, little blog.  You can change your name when you turn 18.)</p>
<p>As a nascent, independent, software entrepreneur, I&#8217;d like to share various ideas pertaining to software development.  My primary audience will be fellow coders.  However, laymen may be interested in my other articles, which will cover topics in software usability, IT, and digital culture in general.</p>
<p>I expect to post an article at least once a month, for starters.</p>
<p>If you&#8217;d like to receive an e-mail whenever I post an article, please e-mail me at <a href="mailto:andres@HashCollisions.com">andres@HashCollisions.com</a> .  You can also subscribe to the <a href="http://www.hashcollisions.com/feed/" target="_self">RSS feed</a>.</p>
<p>I&#8217;ll allow comments on this blog., but will review them prior to publication.  Here&#8217;s the <a href="http://www.hashcollisions.com/comments/feed/" target="_self">RSS feed for the comments</a>.</p>
<p>Before signing off, I&#8217;d like to thank several strangers.  They are talented software coder/writers whose respective blogs were a serendipitous find for me.  I&#8217;ve picked up other influences since then, but my first Fab Four will always be (in the order I met them) <a title="Joel Spolsky - Joel on Software" href="http://www.joelonsoftware.com/" target="_self">Joel</a>, <a title="Eric Sink - Eric.Weblog()" href="http://www.ericsink.com/" target="_self">Eric</a>, <a title="Paul Graham" href="http://paulgraham.com/articles.html">Paul</a>, and <a title="Jeff Atwood - Coding Horror" href="http://www.codinghorror.com/">Jeff</a>.  Let&#8217;s see if I can make the most of not only your writing but also your coding advice.  Thank you.</p>
<p>Here we go&#8230;</p>
<p>P.S.  I know there&#8217;s not much on this blog for now, but how about if we get the comments rolling?  Fellow developers: who are your favorite coder/writers?  Who are your own Fab Four (or Fantastic Five, or Stupendous Six, or Superb Seven, etc.)?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hashcollisions.com/2010/05/collide-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

