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

<channel>
	<title>mikewhobikes</title>
	<atom:link href="http://www.mikewhobikes.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikewhobikes.com</link>
	<description>A blog by &#60;a href="http://www.mikewheaton.ca"&#62;Mike Wheaton&#60;/a&#62;.</description>
	<pubDate>Mon, 01 Dec 2008 02:25:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<item>
		<title>Single Page Portfolios</title>
		<link>http://www.mikewhobikes.com/single-page-portfolios/</link>
		<comments>http://www.mikewhobikes.com/single-page-portfolios/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 04:12:50 +0000</pubDate>
		<dc:creator>MikeWhoBikes</dc:creator>
		
		<category><![CDATA[Design]]></category>

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

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

		<guid isPermaLink="false">http://www.mikewhobikes.com/?p=658</guid>
		<description><![CDATA[Portfolios that keep it simple.]]></description>
			<content:encoded><![CDATA[<p>One of my favourite blogs, Web Designer Wall, has a terrific post of <a title="Single-page Portfolio Sites" href="http://www.webdesignerwall.com/trends/single-page-portfolio-sites/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.webdesignerwall.com/trends/single-page-portfolio-sites/');" target="_self">30+ Single-Page Portfolio Sites</a>. Here are a few that really caught my eye:</p>
<p><a href="http://www.contreforme.ch/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.contreforme.ch/');"><img class="size-full wp-image-659 aligncenter" title="Contreforme.ch" src="http://www.mikewhobikes.com/wp-content/uploads/2008/10/contreforme.jpg" alt="" width="470" height="160" /></a><br />
<a href="http://www.volll.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.volll.com/');"><img class="aligncenter size-full wp-image-660" title="Volll.com" src="http://www.mikewhobikes.com/wp-content/uploads/2008/10/volll.jpg" alt="" width="470" height="160" /></a><br />
<a href="http://www.ja-nic.sk/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.ja-nic.sk/');"><img class="size-full wp-image-661 aligncenter" title="Janic Design" src="http://www.mikewhobikes.com/wp-content/uploads/2008/10/ja-nic.jpg" alt="" width="470" height="160" /></a><br />
<a href="http://lukelarsen.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://lukelarsen.com/');"><img class="aligncenter size-full wp-image-662" title="Luke Larsen" src="http://www.mikewhobikes.com/wp-content/uploads/2008/10/lukelarsen.jpg" alt="" width="470" height="160" /></a><br />
<a href="http://www.sroown.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.sroown.com/');"><img class="size-full wp-image-663 aligncenter" title="Sroown" src="http://www.mikewhobikes.com/wp-content/uploads/2008/10/sroown.jpg" alt="" width="470" height="160" /></a></p>
<p>Be sure to check out <a title="Single-page Portfolio Sites" href="http://www.webdesignerwall.com/trends/single-page-portfolio-sites/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.webdesignerwall.com/trends/single-page-portfolio-sites/');" target="_self">the original post </a>to see the entire inspirational list.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikewhobikes.com/single-page-portfolios/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Uncovering Hidden Goals</title>
		<link>http://www.mikewhobikes.com/uncovering-hidden-goals/</link>
		<comments>http://www.mikewhobikes.com/uncovering-hidden-goals/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 04:53:12 +0000</pubDate>
		<dc:creator>MikeWhoBikes</dc:creator>
		
		<category><![CDATA[Design]]></category>

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

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

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

		<guid isPermaLink="false">http://www.mikewhobikes.com/?p=651</guid>
		<description><![CDATA[Find out what your users really want.]]></description>
			<content:encoded><![CDATA[<p>When creating software, designers and developers are (hopefully) aware of <em>what</em> tasks it must achieve. For example: an insurance company needs software for employees to process application forms. Digging further may reveal the <em>why</em> from the business perspective. Perhaps the forms are being individually reviewed to spot errors.</p>
<p>It&#8217;s clear that having an understanding of tasks and the underlying business objectives is essential to designing useful software. However, we rarely take into account another factor: <strong>the real goals of the end user</strong>.</p>
<h3>Understanding user goals</h3>
<p>On the surface it seems that the end user&#8217;s goals are the same as the business. Doesn&#8217;t contributing to the company&#8217;s success directly benefit the employee? Theoretically, yes; but of course it&#8217;s not quite so simple.</p>
<p>To the employee, the goal is not necessarily to do their jobs better and help the company. They may be driven by many <strong>underlying goals</strong>: appearing competent to superiors, enjoying the task at hand, feeling productive, solving problems, helping others, etc.</p>
<p>Although the user&#8217;s goals may not be in direct conflict with the business goals, <em>software that doesn&#8217;t address them directly is likely to fail</em>. A leading cause of failed software projects is rejection by the end user.</p>
<h3>Identifying user goals</h3>
<p>How do we discover the end user&#8217;s goals so that we may address them in the software? Here are some starting points to consider:</p>
<ol>
<li><strong>Psychology</strong>. As diverse as users may be they are &#8212; with <a title="Monkey controls robotic arm" href="http://web.mit.edu/newsoffice/2000/monkeys-1206.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://web.mit.edu/newsoffice/2000/monkeys-1206.html');" target="_self">rare exceptions</a> &#8212; <em>human</em>. A basic understanding of psychology goes a long way toward discovering their true motivations.</li>
<li><strong>Spend time with real users</strong>. Don&#8217;t make assumptions about their jobs, goals, or work habits. What tasks do they seem to pay the most attention to? Keep an eye out for signs of frustration which likely signal failure to meet personal goals.</li>
<li><strong>Business structure</strong>. In large organizations it&#8217;s common for employees on impressing their manager more than anything. How can the software contribute to this?</li>
<li><strong>Politics</strong>. This can create environments where employees must compete to get ahead, yet can&#8217;t give the impression that they are trying too hard. Will publicly ranking everyone&#8217;s performance help if being the &#8220;winner&#8221; generates enemies?</li>
<li><strong>Discomfort and boredom</strong>. Efficiency is great but how will a user feel about completing the same form all day long? Although the previous 3 forms took longer it wasn&#8217;t nearly as brain numbing. People are not computers and yet software frequently treats them as such.</li>
</ol>
<p>I&#8217;d like to hear some feedback on other ways to identify and address user goals. Do you have any examples from real life (software you&#8217;ve developed or used) to share? <strong>Post a comment below!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikewhobikes.com/uncovering-hidden-goals/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Clean URLs on WampServer</title>
		<link>http://www.mikewhobikes.com/clean-urls-on-wampserver/</link>
		<comments>http://www.mikewhobikes.com/clean-urls-on-wampserver/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 03:36:08 +0000</pubDate>
		<dc:creator>MikeWhoBikes</dc:creator>
		
		<category><![CDATA[Development]]></category>

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

		<category><![CDATA[clean URL]]></category>

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

		<guid isPermaLink="false">http://www.mikewhobikes.com/?p=14</guid>
		<description><![CDATA[A simple solution to a pesky problem.]]></description>
			<content:encoded><![CDATA[<p>Many content management systems &#8212; Wordpress, Drupal, and Silverstripe come to mind &#8212; make use of &#8220;<strong>clean URLs</strong>&#8220;. This is a feature of the web server which instantly converts <em>people and search engine friendly paths</em> (tool.com/products/screws/) into paths for use by the application (tool.com/index.php?product=4).</p>
<p>On the Apache web server, the <em>rewrite module must be enabled for clean URLs to function properly</em>. This module is usually disabled by default. Fortunately, WampServer provides a graphical interface which makes it simple to modify Apache settings.</p>
<p><strong>Ready to enable rewrite_module?</strong> Here&#8217;s how:</p>
<ol>
<li><strong>Start WampServer</strong>. An icon should appear in your task bar: <img class="alignnone size-full wp-image-641" title="WampServer icon" src="http://www.mikewhobikes.com/wp-content/uploads/2008/10/wampicon.gif" alt="" width="20" height="20" /></li>
<li>Click the icon to <strong>open WampServer&#8217;s main menu</strong>.</li>
<li>Open the &#8216;<strong>Apache</strong>&#8216; submenu and then &#8216;<strong>Apache modules</strong>&#8216;.</li>
<li>Scroll down to <strong>&#8216;rewrite_module&#8217; and click to enable</strong> it.</li>
</ol>
<p>That&#8217;s all there is to it! A quick tip, but important nonetheless and something I&#8217;ve seen a lot of CMS users &#8212; myself included &#8212; get stuck on. I hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikewhobikes.com/clean-urls-on-wampserver/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mixing Typefaces</title>
		<link>http://www.mikewhobikes.com/mixing-typefaces/</link>
		<comments>http://www.mikewhobikes.com/mixing-typefaces/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 03:36:46 +0000</pubDate>
		<dc:creator>MikeWhoBikes</dc:creator>
		
		<category><![CDATA[Design]]></category>

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

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

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

		<guid isPermaLink="false">http://www.mikewhobikes.com/?p=630</guid>
		<description><![CDATA[Which typefaces are compatible?]]></description>
			<content:encoded><![CDATA[<p><strong>Mixing multiple typefaces is common practise</strong> in visual design. Using different typefaces together can add visual interest, guide the viewers eye, and take advantage of each font&#8217;s ideal size for readability. However, a poorly chosen combination can produce an unpleasant result.</p>
<p>How can we know which typefaces mix well? As with most questions in design there is no definitive answer as it comes down to <em>good judgement by the designer</em>.</p>
<p>Fortunately, there is an excellent chart available to assist in the decision process: <a title="Mixing Typefaces (PDF)" href="http://www.as8.it/handouts/mixing-typefaces_U&amp;lc1992.pdf" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.as8.it/handouts/mixing-typefaces_U&amp;lc1992.pdf');">Mixing Typefaces (PDF)</a>. It contains 22 common fonts arranged into a grid which allows you to <strong>look up any combination of fonts</strong> and quickly see, on a scale of 1-3, how well they are likely to mix.</p>
<p><a title="Mixing Typefaces (PDF)" href="http://www.as8.it/handouts/mixing-typefaces_U&amp;lc1992.pdf" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.as8.it/handouts/mixing-typefaces_U&amp;lc1992.pdf');">Download the PDF</a> and have a look.</p>
<p><a href="http://www.as8.it/handouts/mixing-typefaces_U&amp;lc1992.pdf" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.as8.it/handouts/mixing-typefaces_U&amp;lc1992.pdf');"><img class="size-full wp-image-631 aligncenter" title="Mixing Fonts" src="http://www.mikewhobikes.com/wp-content/uploads/2008/10/mixingfonts.gif" alt="Click to download PDF." width="500" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikewhobikes.com/mixing-typefaces/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Context or Convention?</title>
		<link>http://www.mikewhobikes.com/signals-context-or-convention/</link>
		<comments>http://www.mikewhobikes.com/signals-context-or-convention/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 05:03:29 +0000</pubDate>
		<dc:creator>MikeWhoBikes</dc:creator>
		
		<category><![CDATA[Design]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.mikewhobikes.com/?p=108</guid>
		<description><![CDATA[Making the case for context-sensitive messages.]]></description>
			<content:encoded><![CDATA[<p>When choosing a symbol to communicate a new concept we may be faced with two alternatives. We can select a commonly used, preexisting symbol that doesn&#8217;t quite fit the message. Or, a new symbol can be created that clearly communicates the concept but is not as recognizable. Which is best?</p>
<h3>For Example: Hand Signals</h3>
<p>Cyclists use hand signals to indicate a lane change or upcoming turn. For the safety of both cyclist and motorists it&#8217;s important that whatever signal is chosen is as <em>unambiguous as possible</em>.</p>
<p>The conventional signal for a right turn is to hold the left arm upright with the elbow bent at a right angle. This is a <strong>hand-me-down from signals designed for motorists</strong> who &#8212; at least in this part of the world &#8212; are unable to reach across and point out of the passenger-side window to indicate a right turn.</p>
<p>However, given the context of being on a bicycle, <em>this limitation no longer exists</em>. A cyclist can simply hold out their right arm and point in that direction to indicate a right turn.</p>
<p style="text-align: center;"><a title="Frankenmuth Police Department: Bicycle Safety" href="http://www.frankenmuthcity.com/police/bikesafety.htm" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.frankenmuthcity.com/police/bikesafety.htm');" target="_self"><img class="size-full wp-image-612 aligncenter" title="Hand Signals" src="http://www.mikewhobikes.com/wp-content/uploads/2008/09/signals.gif" alt="" width="475" height="250" /></a></p>
<p>Which is the correct choice? Although using the left arm is the &#8220;official&#8221; signal, I think it&#8217;s <em>much clearer to point with the right arm</em>. It&#8217;s unambiguous and doesn&#8217;t require driver to have any knowledge of hand signals to understand the cyclist&#8217;s intent.</p>
<p>Extending this example to design in general, I&#8217;d say that <strong>context should always be taken into consideration</strong> before using any pre-existing symbol. Unless the symbol communicates the message perfectly, it&#8217;s worth looking into other options. When symbols are used repeatedly to convey slightly different messages their strength slowly erodes until they become generic and meaningless altogether.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikewhobikes.com/signals-context-or-convention/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wish List Frustrations</title>
		<link>http://www.mikewhobikes.com/wish-list-frustration/</link>
		<comments>http://www.mikewhobikes.com/wish-list-frustration/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 04:40:16 +0000</pubDate>
		<dc:creator>MikeWhoBikes</dc:creator>
		
		<category><![CDATA[Usability]]></category>

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

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

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

		<guid isPermaLink="false">http://www.mikewhobikes.com/?p=591</guid>
		<description><![CDATA[An error message is the least you can do.]]></description>
			<content:encoded><![CDATA[<p>While shopping for books I often use the &#8220;wish list&#8221; feature to keep track of potential purchases. Today I found that my wish list on <a title="chapters.indigo.ca" href="http://www.chapters.indigo.ca/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.chapters.indigo.ca/');">chapters.indigo.ca</a> was several months old and no longer contained any books I wanted.</p>
<p><strong>My goal? To empty the wish list </strong>so I could start fresh.</p>
<p>Here&#8217;s what I tried:</p>
<ol>
<li>I scanned for an &#8220;Empty&#8221; or &#8220;Remove All&#8221; button. No such luck.</li>
<li>A &#8220;Remove&#8221; link is provided next to each item. Clicking one revealed that it requires a full page refresh. That&#8217;s going to take much too long; there must be a better option.</li>
<li>I know! I&#8217;ll set the quantity of each item to 0 and then update. This is common behaviour to shopping carts, which is essentially what this wish list is.</li>
</ol>
<p>Here&#8217;s the message I received after setting the quantities to zero and updating:</p>
<p style="text-align: center;"><a href="http://www.mikewhobikes.com/wp-content/uploads/2008/09/wishlist.gif" ><img class="size-full wp-image-604 aligncenter" title="Wish List Error" src="http://www.mikewhobikes.com/wp-content/uploads/2008/09/error.gif" alt="Click to view full screenshot." width="500" height="70" /></a></p>
<p>The developers clearly <strong>understand I was attempting to remove items, yet they refuse to help me</strong>. Instead it&#8217;s suggested that I &#8220;simply click the Remove button&#8221;. How simple would it be with a list of 20 items? 100? They could code the logic to make this work properly in less time.</p>
<p>The lesson here is that for every error message you write it&#8217;s useful to quickly ask &#8220;<em>Could I help the user instead of giving them this message?</em>&#8221; If the message is a workaround, <strong>do it for the user instead of telling them how</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikewhobikes.com/wish-list-frustration/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL and Lowercase Tables</title>
		<link>http://www.mikewhobikes.com/mysql-lowercase-tables/</link>
		<comments>http://www.mikewhobikes.com/mysql-lowercase-tables/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 04:24:34 +0000</pubDate>
		<dc:creator>MikeWhoBikes</dc:creator>
		
		<category><![CDATA[Development]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.mikewhobikes.com/?p=574</guid>
		<description><![CDATA[The little-known issue that wasted hours.]]></description>
			<content:encoded><![CDATA[<p>After installing a content management system on my local machine (running <a title="WampServer" href="http://www.wampserver.com/en/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.wampserver.com/en/');">WampServer</a>) I attempted to deploy it to the live web server. The files copied successfully over FTP and I used phpMyAdmin to export the local database and import it onto the remote server.</p>
<p>Everything should work, right? <em>Wrong</em>. Instead of seeing a duplicate copy of what I had on my local machine I received an error. Upon closer inspection I found that installing the CMS on the remote server produed camel case table names (ie. &#8216;myDatabaseTable&#8217;) while a <em>local install gave me lowercase names </em>(ie. &#8216;mydatabasetable&#8217;).</p>
<h3>What&#8217;s going on here?</h3>
<p>It turns out that while UNIX is case sensitive, Windows is not. Combine this with the fact that MySQL &#8212; when installed with WampServer, at least &#8212; <strong>converts all table names to lowercase</strong> and there&#8217;s clearly a problem here.</p>
<p>The application tried to create &#8216;myDatabaseTable&#8217; and was given &#8216;mydatabasetable&#8217; instead. A query will work fine on windows (where &#8216;myDatabaseTable&#8217; is equivalent to &#8216;mydatabasetable&#8217;). However, things change when the database is copied over to a case-sensitive UNIX server. As far as MySQL is concerned, the <strong>tables being queried don&#8217;t exist!</strong></p>
<h3>A Simple Solution, Really</h3>
<p>Fortunately, there&#8217;s a <strong>MySQL setting to alter this behaviour</strong> so that table names are not modified. Here&#8217;s how to do it:</p>
<ol>
<li>Open the &#8216;my.ini&#8217; configuration file. This can be found under the MySQL menu in WampServer.</li>
<li>On a new line at the end of the file, paste: <strong><code class="literal">lower_case_table_names=2</code></strong></li>
<li>Restart all services for the change to take effect.</li>
<li>Reinstall the application. The created tables will retain their intended case, and you should be able to export this database onto the live server without incident.</li>
</ol>
<p>I find it surprising that I haven&#8217;t run into this before or heard of others with the same problem; it seems like it should be quite common. Is there a good reason to have MySQL alter the table names by default? Should developers be aware of this and <strong>use all lowercase table names?</strong> Maybe so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikewhobikes.com/mysql-lowercase-tables/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
