<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.0.4" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Dubroy.com/blog</title>
	<link>http://dubroy.com/blog</link>
	<description>on programming, usability, and design; by Patrick Dubroy</description>
	<pubDate>Fri, 10 Jul 2009 13:17:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/dubroy" type="application/rss+xml" /><feedburner:emailServiceId>dubroy</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>How many tabs do people use? (Now with real data!)</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/dASvT5jyUWA/</link>
		<comments>http://dubroy.com/blog/2009/04/13/how-many-tabs-do-people-use-now-with-real-data/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 16:15:04 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>hci</dc:subject>
	<dc:subject>research</dc:subject>
	<dc:subject>browser</dc:subject><dc:subject>browser</dc:subject><dc:subject>hci</dc:subject><dc:subject>research</dc:subject><dc:subject>tabbed browsing</dc:subject><dc:subject>tabs</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/04/13/how-many-tabs-do-people-use-now-with-real-data/</guid>
		<description><![CDATA[For the past few months, I&#8217;ve been knee-deep in data from the tabbed browsing study that I conducted late last year. Now that I&#8217;m finishing up my thesis, I figured it&#8217;s about time that I share some of my findings. In this post, I&#8217;ll talk about one of the quantitative questions I was trying to [...]]]></description>
			<content:encoded><![CDATA[<p>For the past few months, I&#8217;ve been knee-deep in data from the tabbed browsing study that I conducted late last year. Now that I&#8217;m finishing up my thesis, I figured it&#8217;s about time that I share some of my findings. In this post, I&#8217;ll talk about one of the quantitative questions I was trying to answer in my study: how many tabs do people use?</p>

<h3>Measures</h3>

<p>The first thing we need to do is to be a bit more precise with the question. What does it mean to &#8220;use&#8221; multiple tabs or windows, and how should it be measured? There are few possible answers. </p>

<p>We could simply count the number of tabs that a person creates. One problem with that is that when Firefox starts up, at least one tab is created (and possibly more, if it is restoring a session), so someone who opens and closes their browser frequently would have a high number of tab creation events. To eliminate this effect, we only count tabs that are created after browser startup. We also ignore the first tab that is created in any window.</p>

<p>Another thing that&#8217;s interesting to measure is the number of concurrent tabs or windows that a person typically has open. For example, two people might create a similar number of tabs, but one of them might have an email client, an RSS reader, and another tab playing music open at all times. It seems reasonable to say that this person uses tabs more heavily than the other person. We decided to measure the number of windows and tabs that were open whenever a navigation event occurred. For consistency, we ignored all navigation events caused by Firefox&#8217;s session restore feature when calculating this measure, although it didn&#8217;t have a very significant effect overall.</p>

<p>A third measure of tab usage that might be interesting to look at is the number of tab switches that a person performs, but I&#8217;ll address that in a later post. For now, we&#8217;ll concentrate on how <em>many</em> tabs.</p>

<h3>Study Details</h3>

<p>First, I guess I should mention a little bit about how the study was conducted. Here was the recruitment email we sent out to family, friends, and colleagues:</p>

<blockquote>
  <p>We are seeking participants (at least 18 years old) for a research study exploring how people use web browsers.</p>
  
  <p>If you use Mozilla Firefox for several hours a day, and often use multiple tabs or windows, then you are a
  candidate for the study. If you choose to participate, you&#8217;ll install a Firefox extension that will log various 
  actions, e.g. clicking on a link, visiting a bookmark, opening a new tab, and clicking the back button. Don&#8217;t 
  worry, the names and addresses of the web sites that you visit will NOT be revealed to researchers.</p>
  
  <p>The study will last for two weeks. During this time, you&#8217;ll take part in five short interviews (approx. 30 minutes 
  each) that will be arranged at your convenience. In addition, you&#8217;ll be asked to record some brief notes several 
  times during the course of each day (again, at your convenience) and to email your log file to the researchers 
  at the end of the day. Participating in the study will take about 4-5 hours in total over the two week period.</p>
</blockquote>

<p>We also put posters up with similar wording across the University of Toronto campus. 21 people completed the study, and 1 person started it but dropped out early.</p>

<p>Unlike many other studies like this that have been done, our study participants had a variety of ages, professions, and technical skill levels. One participant was younger than 20, 14 were between the ages of 20 and 29, four were 30-39, and two were 50-59. Only 6 participants came from a computer science or engineering background, while others had studied education, environmental science, business, and psychology. Six of the participants were full-time students (either undergraduate or graduate), and 15 were working in some kind of office environment where they spent most of their time on the computer.</p>

<h3>Results</h3>

<h4>Tab Creation</h4>

<p>First lets take a look at the tab creation rate. Now, keep in mind that these are only tabs that are created <em>after</em> browser startup, and the first tab in any window is not counted. On the X axis is the &#8220;tab creation rate&#8221;: the ratio of tabs created to navigation actions. (A navigation action is anything that changes the URL of the page, even if it doesn&#8217;t result in a top-level page load.) The height of the bars represents the number of participants with a given tab creation ratio.</p>

<p><a href="http://dubroy.com/blog/wp-content/uploads/2009/04/tab_creation_rate.png"><img id="image247" src="http://dubroy.com/blog/wp-content/uploads/2009/04/tab_creation_rate-med.png" alt="Histogram of tab creation rate" /></a></p>

<p>Interesting&#8230;we&#8217;ve got a very clear bi-modal distribution. More than half of our participants (13/21) are clustered around the 0.04 mark. In other words, these people create about 4 tabs for every 100 navigation actions. The rest of the participants are loosely centered around 0.14, meaning that they create about 3 times as many tabs as the other people. In fact, we have two participants who are even higher, creating (respectively) 17 and 22 tabs per 100 navigation actions.</p>

<p>Unsurprisingly, the four highest tab creation rates belong to the four participants with Computer Science and/or programming backgrounds. The other four participants in the high part of the distribution are not your typical &#8220;techie&#8221; types: one is trained as a civil engineer, and the others have backgrounds in communications, humanities, and marketing.</p>

<h4>Concurrent Tabs</h4>

<p>Another interesting thing to look at is the number of tabs that people tend to have open at any given time. Again, we used navigation actions as our increment of measurement. On the X axis is the number of tabs open when a navigation action occurs, and the height of the bars it the total number of navigation actions that occurred with the that number of tabs open.</p>

<p><a href="http://dubroy.com/blog/wp-content/uploads/2009/04/tabs_open_on_nav.png"><img id="image249" src="http://dubroy.com/blog/wp-content/uploads/2009/04/tabs_open_on_nav-med.png" alt="Histogram of tabs open on navigation" /></a></p>

<p>Not too surprising &#8212; the most common number of tabs to have open is one, with a pretty steady descent down to 9. It flattens out and hits a valley at 13, but then rises slightly again for a second peak at 16. So, again we see a slight bi-modality to the distribution. But if we take the same set of &#8220;tab power users&#8221; from the first graph, we see that they have roughly the same profile as all the participants put together. In fact, the peak at 16 is almost entirely caused by only two of the power users: participants 14 and 20.</p>

<p>One possible explanation for the bi-modal distribution here is tab bar scrolling. At a typical screen size on a laptop or desktop, the tab bar can fit about 9-13 tabs without scrolling. Many people probably try to avoid having the tab bar scroll, but once you get to the point where it starts scrolling, there&#8217;s little additional cost to having more tabs open. So it may be the P14 and P20 are the only ones comfortable with keeping so many tabs open that the tab bar is scrolling.</p>

<p>Take a look at the median and max number of tabs that each participant had open:</p>

<p><a href="http://dubroy.com/blog/wp-content/uploads/2009/04/median_and_max_tabs.png"><img id="image257" src="http://dubroy.com/blog/wp-content/uploads/2009/04/median_and_max_tabs-med.png" alt="Graph of median and max tabs" /></a></p>

<p>(Note that there&#8217;s no participant 8&#8230;he&#8217;s the one that dropped out.)</p>

<p>Participants 14 and 20 definitely stick out &#8212; it&#8217;s easy to see why they contributed so much to the yellow portions of the previous chart. Participant 14 by <em>far</em> the highest median number of tabs open with 17, while no other participant had a median higher than 6. Participant 20 actually edges out P14 for max tabs though, with 42. (For once it really <em>is</em> the answer.) Forty-two &#8212; that&#8217;s a lot of tabs! The tab bar would be scrolling two are three times over at this point. He actually commented on this, saying &#8220;Now I am opening tabs up from Digg and they are appearing at the end of my massive list.  This is truly a bad way to browse.&#8221;</p>

<p>P19 is an interesting one&#8230;a median of only one tab open, but a max of 27! Participant 2 is similar, but not nearly as extreme: a median of 4 and a max of 20. Even if these two preferred not to have too many tabs open most of the time, they weren&#8217;t afraid of opening up lots of tabs when they needed to.</p>

<p>In general though, it looks like most people don&#8217;t go far beyond where the tab bar starts to scroll. I&#8217;ve marked a gray line on the graph at 13 tabs. At a resolution of 1280&#215;1024, this is the point at which the tab bar starts scrolling (on my computer, at least). We see one person who maxes out at 13, and a few more who max out at 14. In all, there are 9 people whose maximum is between 10 and 14.</p>

<h3>Conclusions</h3>

<p>There are a few things we can take away from this. First, we saw that people who use tabs heavily can create 2 to 3 times as many tabs as other users. It&#8217;s not obvious what the cause for the bi-modality in the distribution is though. From the second and third graphs, we see that having 10 or 11 tabs open is not that uncommon, even for people who aren&#8217;t &#8220;power users&#8221;. And the third chart also show us that even people who don&#8217;t have many tabs open on average can sometimes have spikes of a large number of tabs.</p>

<hr />

<p>Let me know if you have any questions or feedback. Have I explained things clearly? Are there any other numbers you think I should take a look at? Leave me a comment or send me an email. I&#8217;ll be posting some other interesting results from my study over the next couple of weeks.</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/dASvT5jyUWA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/04/13/how-many-tabs-do-people-use-now-with-real-data/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/04/13/how-many-tabs-do-people-use-now-with-real-data/</feedburner:origLink></item>
		<item>
		<title>301 Redirect for the search usability win!</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/Sj1_GQcUEh4/</link>
		<comments>http://dubroy.com/blog/2009/03/20/301-redirect-for-the-search-usability-win/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 22:31:49 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>usability</dc:subject><dc:subject>301 redirect</dc:subject><dc:subject>cloudkick</dc:subject><dc:subject>redirect</dc:subject><dc:subject>search engine optimization</dc:subject><dc:subject>seo</dc:subject><dc:subject>usability</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/03/20/301-redirect-for-the-search-usability-win/</guid>
		<description><![CDATA[This morning I read an article about CloudKick, a new Y Combinator startup that provides a nice interface for managing cloud computing resources on Amazon EC2 and Slicehost. It turned out to be a good lesson in how paying attention to basic search engine optimization (SEO) techniques can also give you usability benefits.

After reading the [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I read an article about <a href="https://www.cloudkick.com/">CloudKick</a>, a new Y Combinator startup that provides a nice interface for managing cloud computing resources on <a href="http://aws.amazon.com/ec2/">Amazon EC2</a> and <a href="http://www.slicehost.com/">Slicehost</a>. It turned out to be a good lesson in how paying attention to basic search engine optimization (SEO) techniques can also give you usability benefits.</p>

<p>After reading the article, I was looking for a bit more information on CloudKick. When I <strike>Googled</strike> searched Google&trade; for &#8216;cloudkick&#8217;, here&#8217;s what I saw:</p>

<p><img id="image243" src="http://dubroy.com/blog/wp-content/uploads/2009/03/cloudkick-results-without-redirect.png" alt="Search results without 301 redirect" /></p>

<p>The CloudKick home page doesn&#8217;t appear until #5, and #4 is actually a separate page from their site! Not the best experience for someone searching for more information about the company. It seems odd that their official web site doesn&#8217;t appear until #4, almost as if it&#8217;s not <em>really</em> the official web site. And why does the contact page appear before the home page?</p>

<p>Notice anything else? The URL on the #4 result has <strong>www</strong> in front, but the one in #5 doesn&#8217;t. I&#8217;m by no means an SEO expert, but I know a thing or two &#8212; and I could tell that because links to their site weren&#8217;t using a canonical URL, Google was treating it as two different sites. This causes two problems: first, Google doesn&#8217;t know that the contact page is actually a subpage of the main web site, and second, it dilutes the PageRank, because Google thinks that these two results represent two different sites.</p>

<p>So I sent <a href="http://twitter.com/dubroy/status/1360430151">a quick tweet to CloudKick co-founder Alex Polvi</a> to let him know about the problem and to suggest that they change cloudkick.com to be a 301 redirect to www.cloudkick.com (or vice versa). That lets Google know that both URLs refer to the same site.</p>

<p>And what do you know &#8212; they made the change, and just a few hours later, here are the results I get:</p>

<p><img id="image244" src="http://dubroy.com/blog/wp-content/uploads/2009/03/cloudkick-results-with-redirect.png" alt="Search results with 301 redirect" /></p>

<p>Looks a lot better, doesn&#8217;t it?</p>

<p>The moral of the story: you may not think you need to bother with search engine optimization, but paying attention to even the basics can give you a big usability win. Make it easier for Google to understand your site, and you make it easier for your potential users as well.</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/Sj1_GQcUEh4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/03/20/301-redirect-for-the-search-usability-win/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/03/20/301-redirect-for-the-search-usability-win/</feedburner:origLink></item>
		<item>
		<title>Hire me for programming or interaction work</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/cBMowrGudLI/</link>
		<comments>http://dubroy.com/blog/2009/03/10/hire-me-for-programming-or-interaction-work/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 00:42:31 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>meta</dc:subject><dc:subject>meta</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/03/10/hire-me-for-programming-or-interaction-work/</guid>
		<description><![CDATA[In the next month or two, I&#8217;ll be finishing up my master&#8217;s degree. After that, I&#8217;m looking for full-time, part-time, or contract work doing programming and/or interaction design.

What I can do

Whenever possible, I like to code in Python. It&#8217;s been my language of choice for more than 6 years. Lately I&#8217;ve also been writing lots [...]]]></description>
			<content:encoded><![CDATA[<p>In the next month or two, I&#8217;ll be finishing up my master&#8217;s degree. After that, I&#8217;m looking for <strong>full-time, part-time, or contract work</strong> doing programming and/or interaction design.</p>

<h3>What I can do</h3>

<p>Whenever possible, I like to code in <strong>Python</strong>. It&#8217;s been my language of choice for more than 6 years. Lately I&#8217;ve also been writing lots of <strong>Javascript</strong>, especially for the <a href="http://github.com/pdubroy/tlogger/">Firefox extension I wrote for my master&#8217;s</a>. (I&#8217;m pretty handy with HTML and CSS too.)</p>

<p>I also know my way around <strong>Java</strong>: I worked on the Eclipse team for a short time, and later worked on <a href="http://www.ibm.com/developerworks/java/jdk/">IBM&#8217;s Java VM</a> for more than four years, where I wrote some heavy-duty <strong>C and C++</strong> code. I&#8217;m also happy to dive into other languages when I need to: Ruby, PHP, shell scripting, etc.</p>

<p>For the past two years, I&#8217;ve been working on my master&#8217;s degree in Computer Science (with a focus on human-computer interaction) at the University of Toronto. For my master&#8217;s thesis, I did a field study examining how people use tabs in Firefox, which <a href="http://dubroy.com/blog/2009/01/29/my-talk-at-mozilla/">I recently spoke about at the Mozilla Mountain View office</a>. For one of my courses, I also did some <a href="http://vimeo.com/3020154">interaction work on the One Laptop per Child XO laptop</a>.</p>

<p>And, of course, I&#8217;ve been writing about <a href="http://dubroy.com/blog/category/programming/">programming</a> and <a href="http://dubroy.com/blog/category/hci/">HCI</a> on this blog for more than two years.</p>

<p>For more details about me, check out my <a href="http://dubroy.com/blog/about">about page</a>, or get in touch and I can send you a full CV.</p>

<h3>What I&#8217;m looking for</h3>

<p>For a full-time job, I&#8217;m looking for something where I can do interaction design and also write lots of code. Ideally I&#8217;d like to work on a public-facing product or site that I use and love. </p>

<p>For part-time and contract work, I&#8217;m up for pretty much anything that&#8217;s interesting and challenging.</p>

<h3>Get in touch</h3>

<p>If you think you&#8217;ve got something I might be interested in, send me an email @ <strong>pat at dubroy&#46;com</strong>. </p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/cBMowrGudLI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/03/10/hire-me-for-programming-or-interaction-work/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/03/10/hire-me-for-programming-or-interaction-work/</feedburner:origLink></item>
		<item>
		<title>Are short methods actually worse?</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/3Oc1tbv1E8I/</link>
		<comments>http://dubroy.com/blog/2009/03/09/method-length-are-short-methods-actually-worse/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 21:12:32 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>programming</dc:subject><dc:subject>function length</dc:subject><dc:subject>method length</dc:subject><dc:subject>programming</dc:subject><dc:subject>routine length</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/03/09/method-length-are-short-methods-actually-worse/</guid>
		<description><![CDATA[I ran across an interesting post on programming.reddit called Anecdote Driven Development, or Why I Don't Do TDD. The article focused on testing, but what I found most interesting was the part about how long a method or function should be. I've believed for a long time that shorter methods AREN'T better, but here is some actual, empirical evidence to justify that claim.]]></description>
			<content:encoded><![CDATA[<p>I ran across an interesting post on <a href="http://www.reddit.com/r/programming">programming.reddit</a> called <a href="http://use.perl.org/~Ovid/journal/38616">Anecdote Driven Development, or Why I Don&#8217;t Do TDD</a>. The article focused on testing, but what I found most interesting was the part about how long a method or function should be:</p>

<blockquote>
  <p>I recently wrote some code for Class::Sniff which would detect &#8220;long methods&#8221; and report them as a code smell. [&#8230;] 
  Ben Tilly asked an embarrassingly obvious question: how do I know that long methods are a code smell?</p>
  
  <p>I threw out the usual justifications, but he wouldn&#8217;t let up. He wanted information and he cited the excellent book <a href="http://www.amazon.com/Complete-Microsoft-Programming-Steve-McConnell/dp/1556154844">Code 
  Complete</a> as a counter-argument. I got down my copy of this book and started reading &#8220;How Long Should A Routine Be&#8221; 
  (page 175, second edition). The author, Steve McConnell, argues that routines should not be longer than 200 lines. Holy 
  crud! That&#8217;s waaaaaay to long. If a routine is longer than about 20 or 30 lines, I reckon it&#8217;s time to break it up.</p>
  
  <p>Regrettably, McConnell has the cheek to cite six separate studies, all of which found that longer routines were not only 
  not correlated with a greater defect rate, but were also often cheaper to develop and easier to comprehend.</p>
</blockquote>

<p>I&#8217;d never heard this before, but this is great, because it verifies what I&#8217;ve believed for a long time&#8230;</p>

<h3>That which obscures my code is bad</h3>

<p>Last year I wrote a post called <a href="http://dubroy.com/blog/2008/05/06/if-this-is-object-calisthenics-i-think-ill-stay-on-the-couch/">If this is Object Calisthenics, I think I’ll stay on the couch</a> where I argued (among other things) that making your methods as short as possible is NOT a good idea. My justification was that it just makes the code more complicated: &#8220;That which obscures my code is bad.&#8221; But this is even better&#8230;actual empirical evidence.</p>

<p>I don&#8217;t have a copy of Code Complete, so I did a bit more research to see if I could find the actual studies. I found a good summary <a href="http://www.augustana.ca/~mohrj/courses/2003.fall/csc220/lecture_notes/routines.html">here</a> (links added by me):</p>

<blockquote>
  <p>McConnell cites the findings of several studies of the correlation between the size of routines and the cost 
  and/or fault rate of routines. Some findings which favor longer routines are:</p>
  
  <ul>
  <li>Routine size is inversely correlated with errors, up to 200 lines of code. [Basili and Perricone, 1984]</li>
  <li>Larger routines (65 lines of code or more) are cheaper to develop per line of code. [<a href="http://portal.acm.org/citation.cfm?id=9802">Card, Church, and Agresti, 1986</a>; <a href="http://portal.acm.org/citation.cfm?id=78165">Card and Glass, 1990</a>]</li>
  <li>Routines with fewer than 143 source statements (including comments) had 23% more errors per line of code than larger routines. [<a href="https://www.cs.umd.edu/~basili/publications/journals/J42.pdf">Selby and Basili, 1991</a>]</li>
  <li>Routines averaging 100 to 150 lines of code need to be changed least. [<a href="http://portal.acm.org/citation.cfm?id=65481">Lind and Vairavan, 1989</a>]</li>
  </ul>
</blockquote>

<p>Hmmm. It looks like the studies are all about 20-25 years old. I wonder if &#8212; or how &#8212; the results would apply now. I took a quick look at the papers (the ones I could get my hands on), and the programming languages used were: Fortran [Card &#8216;86], Pascal and Fortran [Lind &#8216;89], and a mix of custom languages (one being PL/1-like) and assembly [Selby &#8216;91].</p>

<p>Does anyone know of any more current results? (<a href="http://third-bit.com/">Greg</a>?) It would be interesting to see if this can be shown with more modern languages. But intuitively, it makes sense. In her book <a href="http://books.google.com/books?id=jNka_Fi-dB8C&amp;pg=PA269&amp;dq=design+complexity+really+involves+two+aspects+software+engineering">Software Engineering: Theory and Practice</a>, Joanne Atlee summarizes it nicely:</p>

<blockquote>
  <p>Card and Glass (1990) point out that the design complexity really involves two aspects: the complexity within 
  each component and the complexity of the relationships among components.</p>
</blockquote>

<p><strong>By making your methods shorter, you&#8217;re just trading one kind of complexity for another.</strong></p>

<hr />

<p><strong>Update:</strong> In the comments, Stephane Vaucher pointed to a much more recent study (from 2002): <a href="http://www.cistel.com/free_expertise/publications/Cistel-2002-01.pdf">The Optimal Class Size for Object-Oriented Software</a>. They point out that the conclusion that shorter methods are more error-prone is misleading, at best:</p>

<blockquote>
  <p>The observed phenomenon of smaller components having a higher fault density is due to an arithmetic artifact.
  First, note that the above conclusions were drawn based exclusively on examination of the relationship between 
  fault <em>density</em> versus size [&#8230;] However, by definition, if we model the relationship between any variable X and 1/X, 
  we will get a negative association as long as the relationship between size and faults is growing at most linearly.</p>
</blockquote>

<p>Another way of putting it is: short methods may have more defects <em>per line</em>, but they still have fewer defects overall. There may be a justification for not making methods too short, but these studies do not provide one.</p>

<p>The one sure thing is that <strong>the more code you write, the more bugs you will have.</strong> </p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/3Oc1tbv1E8I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/03/09/method-length-are-short-methods-actually-worse/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/03/09/method-length-are-short-methods-actually-worse/</feedburner:origLink></item>
		<item>
		<title>tlogger: Capture click-stream web browsing logs</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/oOA34KGYQAY/</link>
		<comments>http://dubroy.com/blog/2009/02/13/tlogger-capture-click-stream-web-browsing-logs/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 20:03:29 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>usability</dc:subject>
	<dc:subject>hci</dc:subject>
	<dc:subject>research</dc:subject>
	<dc:subject>browser</dc:subject><dc:subject>browser</dc:subject><dc:subject>firefox</dc:subject><dc:subject>hci</dc:subject><dc:subject>mozilla</dc:subject><dc:subject>research</dc:subject><dc:subject>tab</dc:subject><dc:subject>tabbed browsing</dc:subject><dc:subject>tlogger</dc:subject><dc:subject>usability</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/02/13/tlogger-capture-click-stream-web-browsing-logs/</guid>
		<description><![CDATA[If you&#8217;re reading this, chances are that you&#8217;ve heard about the web browsing study I&#8217;m doing for my master&#8217;s thesis. If not, you might want to check out the summary of my talk at Mozilla, the responses to the talk from Jono and Boriss, or just check out the posts under the &#8220;research&#8221; category.

Since my [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re reading this, chances are that you&#8217;ve heard about the web browsing study I&#8217;m doing for my master&#8217;s thesis. If not, you might want to check out <a href="http://dubroy.com/blog/2009/01/29/my-talk-at-mozilla/">the summary of my talk at Mozilla</a>, the responses to the talk from <a href="http://jonoscript.wordpress.com/2009/01/28/how-do-people-use-tabs/">Jono</a> and <a href="http://jboriss.wordpress.com/2009/01/27/do-you-use-your-back-button/">Boriss</a>, or just check out the posts under <a href="http://dubroy.com/blog/category/research/">the &#8220;research&#8221; category</a>.</p>

<p>Since my talk, a few people have contacted me to ask about exactly how I did the logging, and did I notice this, or did people do that. Unfortunately, I can&#8217;t release my raw data, but I decided to do the next-best thing: release my logging tool. I humbly present <a href="http://dubroy.com/tlogger/">tlogger</a> for your consideration:</p>

<blockquote>
  <p>tlogger is a Firefox extension for capturing click-stream web browsing logs. In other words, it collects data 
  about how the browser is used. Mainly it records navigation events and tab events, as well as the UI actions 
  that cause those events. It&#8217;s roughly similar to the <a href="https://addons.mozilla.org/en-US/firefox/addon/6326">Spectator</a> extension, but with a few key differences:</p>
  
  <ul>
  <li><p>it&#8217;s compatible with Firefox 2 <em>and</em> 3</p></li>
  <li><p>it doesn&#8217;t submit <strong>ANY</strong> data automatically, to anyone. Everything stays on
  in your profile directory, in a human-readable format.</p></li>
  <li><p>URLs are obfuscated on a per-user basis. From the log file, someone can see 
  when the user revisits a site or a URL, but there is no way to determine what 
  the actual URL is. It&#8217;s also not possible to make comparisons between users.</p></li>
  <li><p>it can log a few things that Spectator can&#8217;t, like when javascript on a web page changes window.location.href.</p></li>
  </ul>
</blockquote>

<p>The source code is managed on GitHub at <a href="http://github.com/pdubroy/tlogger/">http://github.com/pdubroy/tlogger/</a>. For the impatient, you can install <a href="http://dubroy.com/tlogger/tlogger-latest.xpi">the latest version of the extension</a> or grab <a href="http://dubroy.com/tlogger/tlogger.git-latest.zip">a snapshot of the repository</a>. In addition to the source code for the Firefox extension, the git repository contains tools for analyzing the log files generated by tlogger.</p>

<p><strong>tlogger is useful for anyone who needs real data about how people use Firefox.</strong> Of course, it&#8217;s perfect if you&#8217;re doing a field study on web browser usage, but it&#8217;s also useful for prototyping new UI features for Firefox. Liz Blankenship has already used it for her <a href="http://www.lizblankenship.com/tabviz/">tabviz</a> project, and discovered some interesting things about her own web browsing habits.</p>

<p>Enjoy! If you find it useful, or if you have any questions, send &#8216;em my way (email to pat, at the domain dubroy.com). If you make changes, send me a pull request on GitHub.</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/oOA34KGYQAY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/02/13/tlogger-capture-click-stream-web-browsing-logs/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/02/13/tlogger-capture-click-stream-web-browsing-logs/</feedburner:origLink></item>
		<item>
		<title>My Tab Study: Apropos Links</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/gbyfcTnQKOw/</link>
		<comments>http://dubroy.com/blog/2009/02/05/my-tab-study-apropos-links/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 21:16:10 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>hci</dc:subject>
	<dc:subject>links</dc:subject>
	<dc:subject>research</dc:subject>
	<dc:subject>browser</dc:subject><dc:subject>browser</dc:subject><dc:subject>firefox</dc:subject><dc:subject>hci</dc:subject><dc:subject>links</dc:subject><dc:subject>research</dc:subject><dc:subject>tabbed browsing</dc:subject><dc:subject>tabs</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/02/05/my-tab-study-apropos-links/</guid>
		<description><![CDATA[There&#8217;s been lots of interest in the talk I gave at Mozilla last week on the early results of my web browsing study. I&#8217;m starting to realize that I&#8217;m far from the only one thinking about this stuff. Here are some interesting things I came across in the last week:

Andy Edmonds pointed me to an [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been lots of interest in <a href="http://dubroy.com/blog/2009/01/29/my-talk-at-mozilla/">the talk I gave at Mozilla last week</a> on the early results of my web browsing study. I&#8217;m starting to realize that I&#8217;m far from the only one thinking about this stuff. Here are some interesting things I came across in the last week:</p>

<p><a href="http://surfmind.com/">Andy Edmonds</a> pointed me to <a href="http://scienceblogs.com/cognitivedaily/2008/12/casual_fridays_whos_tabhappy_a.php">an informal survey done by Dave Munger at Cognitive Daily</a> on how many tabs people use. Dave found that most people had only 2-4 tabs open, and that younger people were likely to have more tabs open. But my favourite part was his finding that if you know who Jonathan Ive, Leo Laporte, and Esther Dyson are &#8212; you&#8217;re likely to have more tabs open.</p>

<p><a href="http://www.lizblankenship.com/">Liz Blankenship</a> told me about <a href="http://www.lizblankenship.com/tabviz/">her project on Tab Visualization</a> for an infoviz course at the University of Michigan. Their goal is <em>to help browser users who tend to have &#8220;too many&#8221; tabs open at once make sense of the information overload they experience.</em> I&#8217;m looking forward to seeing what they come up with.</p>

<p>Also, I realized that I haven&#8217;t mentioned anything yet about <a href="http://labs.mozilla.com/2009/01/test-pilot-vision/">Mozilla&#8217;s Test Pilot project</a>, other than a brief mention in my last post. Test Pilot is a Mozilla Labs program that will allow people to do studies like mine on a <em>massive</em> scale. The goal is to have 1% of Firefox users opt-in to being participants in these kinds of studies. My study had 22 participants. Think hundreds of thousands, or even <em>millions</em>. Pretty cool. I can&#8217;t wait to see where it goes.</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/gbyfcTnQKOw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/02/05/my-tab-study-apropos-links/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/02/05/my-tab-study-apropos-links/</feedburner:origLink></item>
		<item>
		<title>My Talk at Mozilla</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/0n7Nyke4Cz0/</link>
		<comments>http://dubroy.com/blog/2009/01/29/my-talk-at-mozilla/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 06:52:20 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>usability</dc:subject>
	<dc:subject>hci</dc:subject>
	<dc:subject>research</dc:subject>
	<dc:subject>browser</dc:subject><dc:subject>back button</dc:subject><dc:subject>browser</dc:subject><dc:subject>firefox</dc:subject><dc:subject>hci</dc:subject><dc:subject>mozilla</dc:subject><dc:subject>research</dc:subject><dc:subject>revisitation</dc:subject><dc:subject>study</dc:subject><dc:subject>tabs</dc:subject><dc:subject>usability</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/01/29/my-talk-at-mozilla/</guid>
		<description><![CDATA[Earlier this week, I visited the Mozilla office in Mountain View and presented some initial results from the web browsing study that I'm doing for my master's thesis. The (all-meat-no-filler) title of my talk was "How Do People Use Tabs?" It went really well -- everyone seemed to be interested to hear my results, and as I expected, they asked lots of great questions and gave me some good ideas for my further analysis.

I dropped the ball and didn't post my slides anywhere before the talk. <a href="http://jboriss.wordpress.com/2009/01/27/do-you-use-your-back-button/">Boriss</a> and <a href="http://jonoscript.wordpress.com/2009/01/28/how-do-people-use-tabs/">Jono</a> have already blogged about the talk and linked to my slides, and since it's already generated quite a bit of discussion, I thought I'd add a bit more detail here.]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, I visited the Mozilla office in Mountain View and presented some initial results from the web browsing study that I&#8217;m doing for my master&#8217;s thesis. The (all-meat-no-filler) title of my talk was &#8220;How Do People Use Tabs?&#8221; It went really well &#8212; everyone seemed to be interested to hear my results, and as I expected, they asked lots of great questions and gave me some good ideas for my further analysis.</p>

<p>I dropped the ball and didn&#8217;t post my slides anywhere before the talk. <a href="http://jboriss.wordpress.com/2009/01/27/do-you-use-your-back-button/">Boriss</a> and <a href="http://jonoscript.wordpress.com/2009/01/28/how-do-people-use-tabs/">Jono</a> have already blogged about the talk and linked to my slides, and since it&#8217;s already generated quite a bit of discussion, I thought I&#8217;d add a bit more detail here.</p>

<p>I was hoping to have a video to post, but that didn&#8217;t work out. So instead, I decided to try something different: I&#8217;ve written up the talk inline with the slides. It&#8217;s transcribed from memory, but I think it&#8217;s pretty close to the actual talk that I gave. Let me know what you think of this format &#8212; is it worthwhile?</p>

<p>You can also grab the <a href="/research/mozilla-talk-jan09/slides.pdf">full slides of the talk in PDF</a>.</p>

<h3>How do people use tabs?</h3>

<p><img src="/research/mozilla-talk-jan09/img0.png" alt="slide 0" style="margin: 1em 0 1em 0;" /></p>

<p>For those who haven&#8217;t read <a href="http://dubroy.com/blog/about">my about page</a> yet, I&#8217;m a master&#8217;s student in Computer Science at the University of Toronto, focusing on Human-Computer Interaction. This talk was about the research I&#8217;m doing for my master&#8217;s thesis. If I can boil it down to five words, it&#8217;s &#8220;how do people use tabs?&#8221;</p>

<p><img src="/research/mozilla-talk-jan09/img1.png" alt="slide 1" style="margin: 1em 0 1em 0;" /></p>

<p>To give you an idea of how I got here: I have a love/hate relationship with tabs. On one hand, I find tabs to be amazingly useful, and I don&#8217;t think I could ever go back to using a browser that doesn&#8217;t support tabs. But on the other hand, I find I run into a lot of problems with tabs. For one, tabs make it much harder to use the back button. Instead of one trail of history, you now have several &#8212; one for each tab. If you&#8217;ve got 5 or 10 tabs open, and you&#8217;re trying to find a page that you were looking at just a few minutes ago, you might not remember what tab you were in when you were looking at it. That makes it really tough to find the page you&#8217;re looking for.</p>

<p>Another problem with tabs is that they subvert the traditional task management mechanisms of the OS. Exposé, for example, is a really useful feature on OS X. If you are looking for a particular tab, like GMail &#8212; if that tab is not the selected tab in the browser window, you&#8217;re not going to find it in Exposé. The same is true of the Window taskbar.</p>

<p>Tabs also force you to make a premature commitment. What I mean is that every time I click on a link, I have to decide whether I want to open it in a new tab or in the current tab. Sure, it&#8217;s an easy decision, but it&#8217;s still something I have to think about every time I click on a link. And that&#8217;s something we all do pretty often.</p>

<p>Finally, we probably all run into the problem sometimes that there are just too many tabs open. They clutter up the screen, the tab bar starts scrolling, and it takes an effort to clean things up. It&#8217;s a pain.</p>

<p><img src="/research/mozilla-talk-jan09/img2.png" alt="slide 2" style="margin: 1em 0 1em 0;" /></p>

<p>So, as I was looking for topics for master&#8217;s thesis, I started thinking &#8212; could I make something better? Could I come up with something that gives all the advantages of tabs, and eliminates some of these problems?</p>

<p>But as I was sketching up concepts, I started to realize that I really didn&#8217;t have a good idea of <em>how</em> or <em>why</em> people use tabs. I knew what I did, and I could ask my friends what they did. But I&#8217;m a programmer, and a lot of my friends are programmers, and we all know that programmers are not exactly what we&#8217;d call a representative sample.</p>

<p>So I looked at the literature. I had no trouble finding academic papers that looked at how people use web browsers, but surprisingly, I found hardly any mention of tabs. What I found was a big focus on revisitation. A couple papers on revisitation were published recently at CHI &#8212; <a href="http://www.cond.org/chi1159-adar.pdf">one in 2008</a>, and <a href="http://vsis-www.informatik.uni-hamburg.de/getDoc.php/publications/280/chi2007-newformat.pdf">another in 2007</a> (and a good summary <a href="http://blogs.msdn.com/andyed/archive/2006/06/21/641450.aspx">here</a>). One of them didn&#8217;t mention tabs at all, and the other had only a brief mention of how tabs might change revisitation behaviour. I thought this was funny, because in my mind, tabs are highly related to revisition. If I have a page open in a tab, it&#8217;s because I want to go do something else, and then eventually come back to that page. To me, tabs offer another kind of revisitation, so surely they warrant more than just a cursory mention?</p>

<p>It seemed to me like a nice opportunity for my research to fill an significant gap in the literature. So I decided that I would do a study to investigate how people use tabs, and how tabs are related to revisitation.</p>

<p><img src="/research/mozilla-talk-jan09/img3.png" alt="slide 3" style="margin: 1em 0 1em 0;" /></p>

<p>In November and Decmeber of last year, I conducted a field study with 22 participants who each participated for two weeks. Unlike many studies done in HCI, these were not 22 CS graduate students &#8212; I really tried to get a variety of people to participate. In terms of age, most of my participants were in their 20s, but I had a few people in their 30s, one in his 40s, and another in his 50s. And in the study, only 6 of the 22 participants came from a CS or engineering background. The others were quite varied: I had some students from the social sciences, a high-school teacher, a professor, and some administrators from the university.</p>

<p>I wanted to gather both <em>quantitative</em> and <em>qualitative</em> data. So, I wanted to know things like:</p>

<ul>
<li>how many tabs to people have open, on average</li>
<li>what percentage of links are opened in a new tab, vs. in the current tab?</li>
<li>is use of the back button or other history mechanisms correlated to tab usage?</li>
</ul>

<p>&#8230;et cetera. But I also wanted to know <em>why</em> people did things the way they do. And I wanted to learn what people use tabs for, what things they like and dislike, and what problems they run into.</p>

<p>Now, gathering quantitative data is fairly easy. Firefox is pretty easy to instrument, so I built a small logging extension that captured all the data I was interested in: </p>

<ul>
<li>Tab events: when a tab is opened, closed, moved, and switched to</li>
<li>Navigation events: load start, changes to the URL, and load events</li>
<li>Causes of the navigation events: clicking on a link, using the back button, etc.</li>
</ul>

<p>(This extension is actually quite similar to the Spectator extension, but for a few reasons, I couldn&#8217;t actually use Spectator.)</p>

<p>So that gave me my quantitative data. What about the qualitative data? How would I collect that?</p>

<p>Well, that was actually a really tough question. I tried out a few different ideas, piloting them on some of my friends. In the end, what I settled on was this: periodically during the day, my extension would show a not-too-obtrusive notification asking the user to record a short diary entry about what they are doing right now. An interesting thing about this technique was that I didn&#8217;t actually get that much interesting information from these diary entries, but they were actually useful in another way. I interviewed each participant 2 - 4 times over the course of the study, and the diary entries served as a memory trigger, a kind of anchor to bring them back to a particular time or event. And then I could ask them about that event, things like: Why do you think you opened this page in a new tab? Were you still using this tab, or were you done with it? And through these interviews, I was able to collect a lot of really interesting data about how people use tabs, what purposes they serve for them, and why they do things in a particular way.</p>

<p>I completed the data collection before Christmas, and for the past few weeks have been starting to do analysis. I&#8217;d like to share some of my initial results with you. Keep in mind that these are very early results &#8212; they are far from conclusive, but it looks like there are some really interesting things in here.</p>

<p><img src="/research/mozilla-talk-jan09/img4.png" alt="slide 4" style="margin: 1em 0 1em 0;" /></p>

<p>One thing is that I&#8217;ve heard lots about what people are using tabs for. A lot of these things aren&#8217;t that suprising &#8212; they are probably things that you do as well &#8212; but it was nice to hear about them from other people, especially people who aren&#8217;t programmers.</p>

<p>Several people mentioned <strong>using tabs instead of the back button</strong>. For example, with a Google search, a lot of people will go and open several links in new tabs, and then go and peruse those tabs, and see which ones give the information that they need. Without tabs, they said that they&#8217;d click on a link, check it out, go back to the search results page, click on another link, et cetera.</p>

<p>They also mentioned using tabs as <strong>lightweight bookmarks</strong>. For example, you might look up a recipe for something you want to make for dinner, and instead of bookmarking it, just leave the tab open for a few hours until you are actually making dinner.</p>

<p>Similarly, many people said that they use tabs as <strong>reminders</strong>. One participant said that at the end of the day, she scans all of her open tabs, and can quickly figure out if there&#8217;s anything left to do before she leaves.</p>

<p>Of course, tabs allow people to <strong>multitask</strong>, to have several things on the go at once. Quite a few people reported keeping a tab open to Pandora or an internet radio station to listen to music while they are working.</p>

<p>And another somewhat obvious one is that tabs are useful for <strong>comparison</strong>. But what was interesting is that almost everybody said that tabs are better than multiple windows for this. It&#8217;s not clear exactly why, but people said that it&#8217;s just quicker and easier to switch between tabs than to switch between multiple windows.</p>

<p><img src="/research/mozilla-talk-jan09/img5.png" alt="slide 5" style="margin: 1em 0 1em 0;" /></p>

<p>Another question I wanted to answer was, what are the advantages of using tabs? This was kind of funny, but I kept hearing people say things like, &#8220;it&#8217;s just right there.&#8221; It seemed that the whole visual and spatial aspect of tabs was something that people really found helpful. People also mentioned that they liked having a visual browsing history. A couple people even told me that this helped prevent procrastination! If they were working on something, and then they went off an a little sojourn through Wikipedia, then the first couple of tabs would still be there in the top left, reminding them of what they&#8217;re <em>supposed</em> to be doing.</p>

<p>When compared to the back button, most people reported that using tabs is easier and faster. Some of them couldn&#8217;t quite put a finger on why; but others mentioned that with the back button, they don&#8217;t know how far back a page is going to be. But with tabs, they know exactly what they&#8217;re going to get when they click on the tab.</p>

<p>People also seemd to distrust the back button in a way. They said they weren&#8217;t always sure that they&#8217;d be able to find the page that they&#8217;re looking for, or whether the back button would even do what they intended (&#8221;Some sites don&#8217;t really agree with the back button,&#8221; said one person). Tabs, on the other hand, felt much more certain.</p>

<p>And of course, tabs allow new browsing strategies that weren&#8217;t possible before. For example, you can go through a bunch of links and open up several of them in tabs, and <em>then</em> go and investigate them. This can be handy if you&#8217;re in the middle of reading an article, but see an interesting link that you&#8217;d like to check out.</p>

<p><img src="/research/mozilla-talk-jan09/img6.png" alt="slide 6" style="margin: 1em 0 1em 0;" /></p>

<p>As for my quantitive results, what I have done so far is only <strong>very</strong> basic analysis, basically grepping the files and looking for the frequency of certain events. So take these early results with a heavy grain of salt.</p>

<p>One of the first things I looked at was the frequency of tab switching. As my benchmark, I used the number of link click events. Since I can&#8217;t (yet) accurately determine the number of actual navigation events, this seemed like the next best thing. And previous studies have shown that link clicks account pretty reliably for about 45% of all navigation events <em>[Note: in the talk, I believe I said 50%]</em>.</p>

<p>What I found is that the median number of tab switches was roughly 1 for every 2 link clicks. This is interesting, because it would mean that tab switching is the second-most frequent thing that people do in their browser (link clicks are the most frequent, besides typing, pointing, and scolling).</p>

<p>But, I also found that in 5 of the 22 participants, tab switching was actually <em>more</em> frequent than clicking on links. And for all but two of my participants, tab switching was more frequent than clicking on the back button.</p>

<p>This is interesting, because up to now it&#8217;s been assumed that the primary thing that people do in their browser is click on links. And this may still be true (for some people), but tab switching is a close second. This means that the browser is used both for navigation, but also as a task-management tool.</p>

<p><img src="/research/mozilla-talk-jan09/img7.png" alt="slide 7" style="margin: 1em 0 1em 0;" /></p>

<p>Another thing I wanted to look into was how often people choose to open a link in a new tab. In doing so, I noticed something interesting: 6 of the people in my study <em>never</em> opened a link in a new tab, and 3 others did so less than 10 times. These people still used tabs quite a bit. Maybe they never felt the need to open a link in a new window, but I think it&#8217;s more likely that they didn&#8217;t know they could even do that. One person actually described to me a long work-around. If she was on a page with two links that she would have wanted to open in new tabs, she would copy the URL of the page, open up a new tab, and paste the URL in the new tab. Then, she would follow a different link in each one of the tabs. She did this so that she could compare between the two sites. The thing is, she was telling me that this was something she liked about tabs &#8212; that should could compare between two pages. So, even with the amount of work she was putting in, tabs were a win for her. Clearly she would benefit from knowing how to open up a link in a new tab.</p>

<p>The conclusion I make from these numbers is that opening a link in a new tab is not very discoverable. The only way you would find out about it is if someone told you about the magic Ctrl-Tab shortcut, or if you happened to right-click on a link. But that isn&#8217;t very easy to discover.</p>

<p><img src="/research/mozilla-talk-jan09/img8.png" alt="slide 8" style="margin: 1em 0 1em 0;" /></p>

<p>Finally, I noticed something interesting about the use of the back button. Previous studies on web page revisitation have shown that link clicks have pretty steadily accounted for about 45% of all navigation actions <em>[in my presentation, I originally said 50% &#8211;ed.]</em>. The back button seems to be accounting for less and less. In papers by <a href="http://www.viktoria.se/~dixi/BISON/resources/catledge-pitkow%201995.pdf">Catledge &amp; Pitkow (from 1994)</a> and <a href="http://portal.acm.org/citation.cfm?id=258816">Tauscher &amp; Greenberg (from 1995-96)</a>, the back button accounted for about 32 - 36% of navigation actions. Hartmut Obendorf and his co-authors, in <a href="http://vsis-www.informatik.uni-hamburg.de/getDoc.php/publications/280/chi2007-newformat.pdf">their study published at CHI 2007</a> but conducted in 2004-05, they found that the back button only accounted 14% of all navigation actions. <em>[A good summary of the different findings in all 3 studies can be found <a href="http://blogs.msdn.com/andyed/archive/2006/06/21/641450.aspx">here</a>]</em></p>

<p><em>[Note: I&#8217;ve corrected a few of the numbers here. In my presentation I believe I said that link click accounted for 50% of navigation actions, and that the earlier studies had shown the back button accounted for about 30%. I was slightly off.]</em></p>

<p>In my data, I&#8217;m seeing that the median number of back events is about 1 for every 50 link clicks, and for 9 people, it was less than 1 in 100. I don&#8217;t have an exact number of navigation events yet, but assuming that link clicks are relatively stable at about 45%, then back events would be less than 1%! In fact, 7 participants in my study used the back button <strong>less than once per day.</strong> And these people were among the heaviest users of tabs. Now these are just rough numbers, but even if it&#8217;s off by as much as a factor of 2 (which is unlikely), the conclusion here is that the back button is becoming irrelevant for a large class of users. </p>

<p>What&#8217;s still not clear is exactly why people are using the back button so much less. It might be that they don&#8217;t need it as much when they use tabs, or maybe that it&#8217;s harder to use when they use tabs. Or maybe it&#8217;s for other reasons entirely. <em>[There were a couple of interesting suggestions about this from the Mozilla folks. It might be that a lot of sites are better designed these days and provide a way of going &#8220;back&#8221; without using the back button. Or, maybe that it&#8217;s because many people are using web applications like GMail, in which it&#8217;s not clear what happens sometimes when you press the back button.]</em></p>

<p><img src="/research/mozilla-talk-jan09/img9.png" alt="slide 9" style="margin: 1em 0 1em 0;" /></p>

<p>As I&#8217;ve said, these results are based on my intial, fairly basic analysis. I&#8217;m planning on digging a lot deeper. With the qualitative data, I&#8217;m continuing to analyze and code it, hoping to eventually come up with a kind of &#8220;theory of tabs.&#8221;</p>

<p>My quantitive analysis has been very basic so far. I&#8217;m currently working on tools to help me analyze the logs in much greater depth. (Yes, tools that are even more sophisticated than &#8216;grep -c&#8217;!) My plan is to measure a bunch of obvious things, such as the number of tabs that a person has open, the time that they spend on a tab, the portion of links that are opened in a new tab, etc.</p>

<p>I&#8217;m also planning on looking at tab switching as a kind of revisit &#8212; when you switch away from a tab and switch back to it, that&#8217;s <em>revisiting</em> the page, even though it doesn&#8217;t cause a navigation action &#8212; and comparing these results to papers on revistation that I mentioned earlier.</p>

<p>But I&#8217;m also looking for ideas. There are lots of interesting patterns that I might be able to find, but I won&#8217;t find them unless I know what to look for. Please leave a comment below and let me know your ideas.</p>

<p><img src="/research/mozilla-talk-jan09/img10.png" alt="slide 10" style="margin: 1em 0 1em 0;" /></p>

<p>These are just a few of the lessons that I&#8217;ve learned from conducting this study, and they might be helpful to anyone who&#8217;s thinking of doing a similar study.</p>

<p>First of all, I found that there are lots of people out there who are passionate Firefox users, who would love to be able to help out the project in any way. People would say to me, &#8220;I love Firefox! I&#8217;d love to participate in your study.&#8221; Even when I told them that I wasn&#8217;t affiliated with Mozilla, they were still really interested.</p>

<p>I also found that many people aren&#8217;t <em>that</em> concerned about someone seeing the web sites that they visit. Now, the people I talked to are a biased sample, because anyone who was <em>really</em> concerned about their privacy obviously wouldn&#8217;t be interested in the study and wouldn&#8217;t have gotten in touch with me at all. But out of all the people who contacted me, almost no one had any concerns about how the data was being collected. Now, I didn&#8217;t have access to any of their personal information &#8212; all URLs were obfuscated on a per-user basis, and no other personally-identifiable data was collected &#8212; but still, I was surprised how little concern most people showed. I was very conscientious about explaining exactly how I was protecting their privacy, but most people didn&#8217;t seem to care that much. A few even offered to send the full list of the sites that they visited, and even capture a video of them during web browsing. I had to pass on these offers though, as they were outside the scope of my study.</p>

<p>I&#8217;ve found that qualitative studies are quite hard &#8212; sometimes difficult to design, and definitely difficult to do data analysis on.</p>

<p>Finally, I found that the extensibility of Firefox is a double-edged sword. While it made it really easy to instrument the browser to record my data, the possibility of all kinds of other plugins being installed really complicates the log analysis.</p>

<p><img src="/research/mozilla-talk-jan09/img11.png" alt="slide 11" style="margin: 1em 0 1em 0;" /></p>

<p>And of course, please feel free to leave your comments below.</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/0n7Nyke4Cz0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/01/29/my-talk-at-mozilla/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/01/29/my-talk-at-mozilla/</feedburner:origLink></item>
		<item>
		<title>Sketchbook: Using Ubiquity with a mouse</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/PdMiC18Z6sw/</link>
		<comments>http://dubroy.com/blog/2009/01/14/sketchbook-using-ubiquity-with-a-mouse/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 00:54:44 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>design</dc:subject>
	<dc:subject>usability</dc:subject>
	<dc:subject>hci</dc:subject><dc:subject>design</dc:subject><dc:subject>hci</dc:subject><dc:subject>mozconcept</dc:subject><dc:subject>mozilla</dc:subject><dc:subject>ubiquity</dc:subject><dc:subject>usability</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2009/01/14/sketchbook-using-ubiquity-with-a-mouse/</guid>
		<description><![CDATA[Lately, I&#8217;ve been finding Ubiquity to be pretty handy. But honestly, I only use a few of the commands on a regular basis: tinyurl, map, and define. I use Ubiquity in these cases because it&#8217;s significantly faster and easier than what I&#8217;d normally have to do. On the other hand, I don&#8217;t really find it [...]]]></description>
			<content:encoded><![CDATA[<p>Lately, I&#8217;ve been finding <a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a> to be pretty handy. But honestly, I only use a few of the commands on a regular basis: tinyurl, map, and define. I use Ubiquity in these cases because it&#8217;s significantly faster and easier than what I&#8217;d normally have to do. On the other hand, I don&#8217;t really find it easier to use Ubiquity to do a Google search than to just open up a new tab and hit Ctrl-K.</p>

<p>What I find cool about Ubuity is not that it&#8217;s &#8220;a command line for the web&#8221;, but that it provides a much simpler way to extend Firefox. To reach its full potential, I think it needs to move beyond the command line &#8212; which is why I was glad to see Aza Raskin (one of Ubiquity&#8217;s creators) blogging about making Ubiquity more mouse-oriented (see <a href="http://www.azarask.in/blog/post/can-ubiquity-be-used-only-with-the-mouse/">here</a> and <a href="http://www.azarask.in/blog/post/ubiquity-failed-mouse-based-interface/">here</a>).</p>

<h3>The Concept</h3>

<p>In Aza&#8217;s proposal, the main way Ubiquity would be accessed by the mouse is through a &#8220;badge&#8221; that appears beside the selected text, as in the photo below:</p>

<p><a href="http://www.flickr.com/photos/pdubroy/3197228629/" title="Ubiquity badge beside selected text by Patrick Dubroy, on Flickr"><img src="http://farm4.static.flickr.com/3415/3197228629_4c900a5eaa.jpg" width="500" height="96" alt="Ubiquity badge beside selected text" /></a></p>

<p>When the badge is clicked on, the page slides to the left to reveal the Ubiquity pane. Take a look at Aza&#8217;s video to see what I mean:</p>

<p><object width="400" height="251"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2615725&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=2615725&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="251"></embed></object><br /><a href="http://vimeo.com/">Mouse-Based Ubiquity</a> from <a href="http://vimeo.com/user532161">Aza Raskin</a> on <a href="http://vimeo.com">Vimeo</a>.</p>

<h3>Thoughts</h3>

<p>The badge-with-selected-text behaviour can be incredibly annoying (e.g. <a href="http://snap.com">Snap previews</a>), but it can also be done well (e.g., <a href="http://www.nytimes.com/">nytimes.com</a>). As implemented in Aza&#8217;s prototype, it&#8217;s very subtle, so I think it could work.</p>

<p>But there also needs to be a way to bring up Ubiquity without selecting some text. And whatever that is &#8212; a toolbar button, a context menu item, etc. &#8212; it&#8217;s going to be something completely different from this badge. It&#8217;s already a problem that Ubiquity doesn&#8217;t integrate into your regular workflow, and having two separate ways of accessing Ubiquity would only make things worse, in my opinion.</p>

<p>As for the slide-over effect, I&#8217;m not sure I understand the advantage over a translucent overlay like Ubiquity currently uses. And I think that if Ubiquity is invoked with the mouse, it should look as similar as possible to when it&#8217;s invoked with the keyboard, providing a smooth transition from mouse-based use to keyboard-based use.</p>

<h3>Alternative Ideas</h3>

<p>One possibility is for Ubiquity to have a dedicated toolbar button, like many extensions do. When the user clicks the button, the Ubiquity pane pops up or slides out. If we want to call attention to Ubiquity when text is selected, the button could change it&#8217;s icon in a subtle way, getting more colourful, or even glowing or pulsing.</p>

<p>There are other ways Ubiquity could be hooked into the Firefox UI. A Ubiquity bar could replace the search bar (since Ubiquity can do search anyways). Or maybe Ubiquity deserves its own pseudo-tab? See the sketches below:</p>

<p><a href="http://www.flickr.com/photos/pdubroy/3198074208/" title="IMG_1522.JPG by Patrick Dubroy, on Flickr"><img src="http://farm4.static.flickr.com/3132/3198074208_05c185414e.jpg" width="322" height="500" alt="IMG_1522.JPG" /></a></p>

<h3>Panel Layout</h3>

<p>The real hard part about a mouse-based Ubiquity is figuring out how commands would be accessed using the mouse. Since Ubiquity is essentially a command-line interface, it can easily scale to handle dozens or hundreds of commands. It&#8217;s harder to imagine how that can be done with a mouse-based interface.</p>

<p>To complicate things, there&#8217;s no obvious way of grouping Ubiquity commands. Do you group them by verb? e.g. search, post, convert, translate? Or do you group them by site? Or&#8230;? And how do new commands fit into that picture? Overall, I think trying to fit commands into a static hierarchy is a losing proposition.</p>

<p>A Ubiquity user needs to be able to access all of their commands, but it doesn&#8217;t need to be especially quick to access any arbitrary command. Most people probably have 5 - 10 commands that they use most frequently (it would be nice to have some real numbers on this &#8212; <a href="http://labs.mozilla.com/2008/03/introducing-test-pilot/">Test Pilot</a> anyone?). Those commands should be quick to access. For other commands, I think it&#8217;s okay if it&#8217;s not as quick.</p>

<p>I don&#8217;t have a complete design in mind, but I&#8217;ve sketched up a few ideas:</p>

<p><object data="http://www.elsewhere.org/mbedr/?p=3198074034&amp;v" type="text/html" height="409" width="500"><a href="http://www.flickr.com/photos/pdubroy/3198074034/" title="Ubiquity Mouse Ideas by Patrick Dubroy, on Flickr" target="_blank"><img src="http://farm4.static.flickr.com/3430/3198074034_2f4903c7c1.jpg" width="500" height="409" alt="Ubiquity Mouse Ideas"/></a></object> </p>

<p>Any thoughts?</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/PdMiC18Z6sw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2009/01/14/sketchbook-using-ubiquity-with-a-mouse/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2009/01/14/sketchbook-using-ubiquity-with-a-mouse/</feedburner:origLink></item>
		<item>
		<title>Could visualization help make better software?</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/io2ZHekA6J4/</link>
		<comments>http://dubroy.com/blog/2008/12/18/could-visualization-help-make-better-software/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 17:59:09 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>design</dc:subject>
	<dc:subject>programming</dc:subject>
	<dc:subject>infoviz</dc:subject><dc:subject>design</dc:subject><dc:subject>development</dc:subject><dc:subject>information visualization</dc:subject><dc:subject>infoviz</dc:subject><dc:subject>programming</dc:subject><dc:subject>software engineering</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2008/12/18/could-visualization-help-make-better-software/</guid>
		<description><![CDATA[Writing software is incredibly hard. Every programmer knows this. The software we write is complex, unreliable, and difficult to maintain. And this isn&#8217;t a new thing &#8212; the term &#8220;the software crisis&#8221; was coined in 1968. 

The thing about software is that it&#8217;s remarkably easy to write a program that mostly works. And it&#8217;s difficult [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Writing software is incredibly hard.</strong> Every programmer knows this. The software we write is complex, unreliable, and difficult to maintain. And this isn&#8217;t a new thing &#8212; the term &#8220;the software crisis&#8221; was coined in <em>1968</em>. </p>

<p>The thing about software is that it&#8217;s remarkably easy to write a program that <em>mostly</em> works. And it&#8217;s difficult to tell the difference between a quick hack and a stable, reliable, and robust system, because the software development process produces almost no visible artifacts.</p>

<p>When you look at a building, it&#8217;s easy to get a quick sense of how well-built it is. Which of the two buildings below would you rather be in during a heavy storm?</p>

<div align="center">
<a href="http://flickr.com/photos/seier/1244185274/"><img id="image230" src="http://dubroy.com/blog/wp-content/uploads/2008/12/glass1.jpg" alt="&quot;christiania, glass house, august 2007&quot; by seier+seier+seier on Flickr" /></a>
<a href="http://flickr.com/photos/london/382065084/"><img id="image231" src="http://dubroy.com/blog/wp-content/uploads/2008/12/glass2.jpg" alt="&quot;This incredible house was featured in WIRED magazine!&quot; by jonrawlinson on Flickr" /></a>
</div>

<p>Besides the program itself, the only visible artifact of the software development process is the source code. And that is only viewed by the programmers, through the tiny lens of the text editor. <strong>What if we could make the entire process more visible?</strong></p>

<p>I&#8217;m thinking of visualizations along the lines of the <a href="http://www.visualcomplexity.com/vc/project.cfm?id=392">comparison of system calls in Linux/Apache and Windows/IIS</a> that I posted a while back. But this is just one idea. What other ways could we visualize <a href="http://c2.com/xp/CodeSmell.html">Code Smells</a>? (Maybe we could actually smell them!)</p>

<p>Aside from visualizing various aspects of the source code itself, could we show how well tested a piece of software is? We could show how many tests were run recently, what their results were, how good the code coverage is, the number of crashes encountered in the field, etc. With projectors and LCD displays being so cheap these days, there&#8217;s no reason a development team couldn&#8217;t have a few displays dedicated to these kinds of visualizations.</p>

<p>What do you think? Could this help improve the quality of software? What if companies openly published these kinds of things?</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/io2ZHekA6J4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2008/12/18/could-visualization-help-make-better-software/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2008/12/18/could-visualization-help-make-better-software/</feedburner:origLink></item>
		<item>
		<title>Sketchbook: Firefox session restore</title>
		<link>http://feedproxy.google.com/~r/dubroy/~3/4ygA_uavpxA/</link>
		<comments>http://dubroy.com/blog/2008/12/05/sketchbook-firefox-session-restore/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 23:03:03 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
		
	<dc:subject>design</dc:subject>
	<dc:subject>usability</dc:subject>
	<dc:subject>hci</dc:subject><dc:subject>design</dc:subject><dc:subject>firefox</dc:subject><dc:subject>hci</dc:subject><dc:subject>mozconcept</dc:subject><dc:subject>mozilla</dc:subject><dc:subject>session restore</dc:subject><dc:subject>usability</dc:subject>
		<guid isPermaLink="false">http://dubroy.com/blog/2008/12/05/sketchbook-firefox-session-restore/</guid>
		<description><![CDATA[Since I&#8217;m doing a field study on how people use tabs in Firefox, you can imagine that I spend a lot of time thinking some of the smallest details of the Firefox user experience. One thing that&#8217;s been on my mind lately is the session restore feature. You know, when you start Firefox, and it [...]]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;m doing a field study on how people use tabs in Firefox, you can imagine that I spend a lot of time thinking some of the smallest details of the Firefox user experience. One thing that&#8217;s been on my mind lately is the session restore feature. You know, when you start Firefox, and it asks you if you&#8217;d like to restore your windows and tabs from last time? That&#8217;s <a href="https://wiki.mozilla.org/Session_Restore">session restore</a>.</p>

<p>It&#8217;s definitely a handy feature. I often use tabs like lightweight bookmarks, leaving tabs open to a page that I am planning to come back to. (And in my field study I&#8217;ve learned that lots of other people do this too.) If your browser crashes, or the Firefox process sustains collateral damage in a <a href="http://unixhelp.ed.ac.uk/CGI/man-cgi?kill">kill(1)</a>ing spree, it&#8217;s a relief not to lose all the tabs your were saving.</p>

<h3>The Problem</h3>

<p>But the interface for session restore has always bugged me a bit. First, it uses modal dialog boxes, which are generally a bad idea. One of great things about Firefox 3 is that it eliminated a lot of the modal dialog boxes (e.g. &#8220;Do you want to remember this password?&#8221;) in favour of non-modal messages in the notification bar (see Alex Faaborg&#8217;s <a href="http://blog.mozilla.com/faaborg/2007/03/06/would-you-like-to-redesign-notification-in-firefox-yes-not-now-never/">post about this from last year</a>).</p>

<p>Not only does it use modal dialog boxes, but it&#8217;s asking me a question that&#8217;s usually unrelated to what I&#8217;m trying to do. &#8220;Do you want Firefox to save your tabs for next time?&#8221; I&#8217;m probably closing my browser for a reason, but I have no idea whether or not I&#8217;ll need these tabs next time. And asking me when I start up might not be the right time either&#8230;I&#8217;m starting my browser because I have something to do, and I can&#8217;t remember what I had open before, so how should I know whether to restore or not?</p>

<h3>Either you&#8217;re part of the problem, or&#8230;</h3>

<p>So I&#8217;m thinking &#8212; what if we got rid of these questions altogether? What if Firefox <em>always</em> remembered what windows and tabs you had open? But you might not want 15 tabs loading every time you start Firefox up. </p>

<p>A while back, Aza proposed <a href="http://www.azarask.in/blog/post/firefox-31-new-tab-spec/">making the new tab screen more useful</a>. His proposal included a separate screen for restoring recently-closed tabs and windows, but it&#8217;s kind of hidden in his design. Most of the space in his design is taken up by contextual actions, but when you&#8217;re just starting the browser, these aren&#8217;t as relevant. Here&#8217;s a quick mockup of what a similar screen might look like on startup (mouse over to see the notes):</p>

<p><object data="http://www.elsewhere.org/mbedr/?p=3084912509&amp;v" type="text/html" height="362" width="500"><a href="http://www.flickr.com/photos/pdubroy/3084912509/" title="Firefox session restore startup page mockup by Patrick Dubroy, on Flickr" target="_blank"><img src="http://farm4.static.flickr.com/3225/3084912509_70ddd2c5f7.jpg" width="500" height="362" alt="Firefox session restore startup page mockup"/></a></object></p>

<p>There are a few things to mention here. First of all, recently-closed windows are accessed from within a history list. Lately, I&#8217;ve been thinking that so much of what we do in the browser is <em>revisiting</em> pages that we&#8217;ve been to before, so a time-based view makes a lot of sense. Unfortunately, the history is pretty much hidden in most browsers. So you can see some inspiration here  from Google Chrome, which presents the history like a regular web page. I think this makes a lot of sense, because it lets you use the same behaviours that you use on the web, whereas a separate history window forces you to learn a new UI.</p>

<p>Recently-closed windows are presented in a way that looks somewhat like they actually appeared in the window, maintaining the tab ordering. It probably needs to be made a bit more obvious than in this mockup, but you get the picture. Of course you could go a step further here, and make it look almost exactly like a screenshot of the tab bar. This mockup only shows one recently-closed window, but you can imagine having more than one, and they would appear in the history at the time that they were closed. I&#8217;ve also incorporated recently-closed tabs into this page. That&#8217;s currently available as a menu item under History->Recently Close Tabs, but to me, it&#8217;s always seemed kind of tacked-on there. You could also imagine using some of the space here for bookmarks.</p>

<p>What do you think? If you have any thoughts, please leave a comment.</p>
<img src="http://feeds.feedburner.com/~r/dubroy/~4/4ygA_uavpxA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRSS>http://dubroy.com/blog/2008/12/05/sketchbook-firefox-session-restore/feed/</wfw:commentRSS>
		<feedburner:origLink>http://dubroy.com/blog/2008/12/05/sketchbook-firefox-session-restore/</feedburner:origLink></item>
	</channel>
</rss>
