I’ve been making blog drafts for weeks now on the Mozilla Labs “Reinventing Tabs” Design Challenge. A big review seems beyond my attentional capacity which is more and more mimicing that of my 3 year old! I do hope to follow up with a call-out of some of the submissions that incorporate the power of history in tabs. It’s apparent to me that the spawning relationships between tabs is too salient to the human to not be part of the next evolution of tabs. In fact, one might view it as a very subtle and lightweight way of creating landmarks within browsing trails.
Reducing the # of Tabs reduces the management challenge
After reading Limi’s post on reinventing tabs I started using Tree Style Tab on both my core profile and 3.5 beta. This addon groups creates a hierarchy when tabs are spawned from an existing (e.g. “open link in new window”) within a sidebar menu. The initial adjustment was brutal, with pro-active interference in both procedural and motor memory blocking learning. In plain english, overcoming my learned behavior around tabs at the top was challenging initially.
That faded and I swapped back one profile to normal tabs after a week of use. The most startling thing to me about the Tree Style functionality wasn’t the grouping of related tabs, or the presence of a natural mapping between my activity stream and the tab organization. What really rocked was the ability to close all the tabs from a browsing “sub-session”. These tended to be topical explorations.
This points out that the cost of closing tabs, and particularly closing all tabs related to a particular activity, is really high! In addition to offering better ways to select one tab of many tabs, enabling easier tab cleanup could work to alleviate the interaction challenges of tab growth.
Here’s a list of potential user actions that might be useful in a “spawing relationship” aware tab system. I’ll refer to a set of tabs that share a common initial location and have been created from subsquent open in new tab operations as trails.
Close all from this trail
Promote this page to start of trail (close all other tabs in it’s backstream)
Move this trail to a new window, reinstating tabs and history
Bookmark this trail as a tab group bookmark and close
Tag all locations in the tabs of this trail with ___
In the meantime, ctrl-w (win) or apple-w (mac) to close a tab quickly is your friend.
On the Design Challenge Process
The quality and extent of submissions is awesome and I’d call the effort a brilliant success. Yet I think future design challenges might try a different spin on design, critique, and collaboration. I’d like to see the encouragement, both in process and positioning, of derivative works (e.g. remixes) of designs. From a process point of view, this means encouraging the sharing of source files (ex. layered graphic files), a dialogue about common attributes across the designs (ex. tagging) in addition to the current remix friendly licensing requirement.
From a positioning point of view, the current award slots focus on an individual single iteration. A tiered approach of initial designs with subsequent remix rounds could preserve the motivational aspect of individual winners and the downstream rounds of remix would incent non-winners to iterate and incorporate feedback and key elements of winning designs. Perhaps the Chocolate Factory project is a way to realize some of this ambition.
Thanks to Drew @ Mozilla for being a sounding board on some of these ideas.
The Firefox Places team created an opt-in method for users to submit a quantitative profile of their places (history + bookmarks + tags) database (sqlite) by pasting a script into the error console. Drew (adw) did an analysis a few months back and recently gave “last call” for the first round.
I’ve been doing some exploratory data analyses on the data to data, now over 600 submissions. Some top level observations:
Distinct visits, not total visits, is the best predictor of bookmarking activity
30% of the sample use tags extensively while 50% have at least 1 tag (Note: Amended)
The sample is far from a random one and is probably skewed to power users both of the internet and of firefox. 30% tagging utilization is likely an upper bound of what we’d find in a more representative sample.
The rise of AJAX has made the “number of unique pages visited” much harder to compute. Computing this from the a recent pull from the places stats dataset (n=594), we see a 38% revisit rate, or 62% new visit rate as coded below:
> describe(places$percent_visits_new )
n
missing
unique
Mean
.05
.10
.25
.50
.75
.90
.95
594
6
589
0.6224
0.3913
0.4726
0.5485
0.6275
0.7064
0.7779
0.8182
This isn’t actually far from the prior research, quoting from an earlier post:
A WWW’06 study by Harald Weinrich, et al. paper updated these stats, showing across studies 61% of pages visited were repeats in ‘94, 58% in ‘96, and only 45.6% in their 2006 study.
Similarly, pages per day are likely confounded by background requests:
n
missing
unique
Mean
.05
.10
.25
.50
.75
.90
.95
592
6
591
523
51.6
90.2
167.5
287.6
522.4
832.6
1579.8
A key motivator for the places team’s efforts to collect these stats was to create test profiles. Additionally, this type of sampling of the accumulation of data in Places should provide insights into nature of the problem of organizing & recalling web resources. We’re gearing up to do cluster analysis on the dataset to identify profile candidates.
I’m using R (stats) & GGobi (visualization) and versioning analysis code on the Mozilla wiki. The goal is repeatable analysis, both across users and as new data is accumulated, as well as insuring the process is transparent for user confidence as well as for methodogical feedback.
More conclusions are coming, for now, we also have lots of pretty pictures via GGobi’s scatterplot matrix. Thanks to Ed Borasky for R & GGobi tutelage while I was in Portland. I’ve published an intro to R & GGobi screencast.
My premise around this effort was couched in the Labs “Re-Inventing Tabs” challenge. You can imagine the pages in the current tabs as a thin slice of a much more complex, salient, and meaningful datastream including the tab history, parent/child relationships among the tabs as well as your distribution of attention across them.
The session store JSON file provides a handy starting point to capture the tip of this data including an array of windows with a subarray of tabs, their (tree trimmed) history up to 50 deep, scroll depth, partial form completions, and closed tabs. The places API could be called in to augment this data with things like visit count, identifying persistent tabs (e.g. gmail) versus new browsing trails or occasional reads (e.g. a blog with lots of single visits to different pages on a shared path). Alas, the relationship between tabs is not well preserved in places.
While I’ve only tracked the concept series ideas lightly to date, it seems that a few efforts have incorporated the “spawing tab” relationships. Patrick Dubroy’s tlogger work adds additional logging to capture source tab information as well as time in focus but there are lighter weight options for augmenting session store with this info. Whether you’ve actually consumed the content in the tab to any degree or if it’s still waiting attention is also not captured, but would be a very meaningful cue for tab selection operations.
Pointers to catching up on concept series work that addresses tab relationships and history would be appreciated. I’m breaking radio silence on the blog after one of my longer lags, but got a bunch of stuff in the hopper including some serious analyses of the Places Stats data — submit your profile now if you haven’t yet. More on that soon — working to help make key analyses reproducable with R scripting and grokkable with visualization. There’s also more to be said about the approach to “revinvention” that I’m taking here…
I installed IE8 on Thursday on a windows box and was dismayed to discover the easy setup path would set it as my default browser despite Firefox already configured as such.
Is this really how it works? I haven’t seen anyoneelse mention this aspect.
The installer respects your previously set default search engine in IE, but doesn’t do so for the system browser. It’s true that Firefox and other browsers prompt the user to make the browser the default, but they don’t bulk up that setting with a complex setup of additional features.
High speed play-back is neat, and appealing in principle, but largely unusable. Even FriendFeed realtime suffers from some of the same visual glitches as the item you’re reading moves downward. I started to play with a columnar layout thinking that horizontal jumps would be easier than vertical for tracking flowing text blocks.
The word cloud visualization is far from the target, but gotta love a deadline. I’d imagined a deeper understanding of the content, to better drive the messy text normalization, and more expressive typography. The algorithm moves recently repeated items to the top of the list, mixing recency and frequency. A decay function, and some animation niceties, could dramatically improve the aesthetics.
There’s another worthy challenge, and opportunity, from Mozilla for visualizing the community. The turbo-river-of-news Lizard Feeder mashup flows data from bugs, microblogs, the wiki, etc. With the options dropdown, you can fast forward up to 200x and select any day of the last 60.
The call to action is to build on the Lizard Feeder concept with anything from ideas to pixels to code. I hacked up a grease monkey script that weights the data-source checkbox & label on the left according to the volume of flow. This provides a bit of focus + context for the recent stream. The implementation is a minimal, bit-of-an-evening starter kit (MPL) for more interesting creations.
It was my first experience with posting code to GitHub — wow, cut and paste. Get it here: http://gist.github.com/53159. It loads up jQuery and goes selector crazy. Thanks to good semantic markup with multiple classes per element and jQuery, slicing and dicing the DOM is cake. To get the filters/labels, I select “li.group-” + type + “.filter”. To get the news items, I grab “li.entry:visible” — or all LI tags with the class entry that are visible.
For ease of use, performance optimizations are needed for the label weighting effect and some baseline features for the Lizard Feeder itself are listed in the bug. Creative Director John Slater and design firm Stamen Design put together a whole different view of this data set, focused on aggregating across people while streaming that goes well beyond this bit of interaction & information design hijinx.
We aim to create a compelling visual metaphor that effectively depicts the dynamic nature and breadth of activity happening right now across planet Mozilla.
I’m plotting some typographical exploration (ala the Mozilla 1.0 screenplay or typhoGraphic) for extracting and aggregating across terms and commonalities like actor.
Here’ a nice pic of results from a tab usage survey from Cognitive Daily:
There are some great comments on the post as well.
David Munger summarizes “Only 16.7 percent of respondents said they had more than 10 tabs open. Three-quarters of readers had from 2 to 10 tabs, and most of those had from 2 to 4 tabs open.” The results make sense in a 7+-2 kind of way.
I was impressed with the methodology, given the low cost of online surveying. By asking the question “how many tabs do you have open now?” the survey approaches an ethnological method, while also asking “how many tabs do you usually have open?” The authors used a creative way to get responder age — by recognition of celebrities. This showed that open tabs tend to decrease with age. The Mozilla Spectator project would be a great way to get this type of distribution information, but it’s been pretty quiet on that front lately.
Reactions to the (incorrect) notion that Mozilla might deploy a Google Toolbar style clickstream reporting system were appropriately highly negative. In fact, Spectator was carefully designed to never log actual URLs, but only tab creation and session trails, indicating sequences of page loads and the distribution of sessions across tabs. Pure server-side metrics can’t offer this kind of insight into technographics of internet use or, closer to home, insights for Firefox product design.
The proposed final 2010 data goals focus on data portability, which is certainly a great place to start. Still, the results of this survey remind me of the potential of Spectator to help design systems, like tabs, to manage the pervasiveness of the browser in our day to day lives.
In the meantime, hats off to Dave Munger @ Cognitive Daily & Research Blogging for a useful methodology and interesting survey. Update:I’ve requested raw data for more digging.
I’ve been having fun with CSS Transforms (supported by both Webkit/Safari/iPhone and Firefox) as well as the Webkit/iPhone only transform animations. The resulting framerates on the iPhone are hard to achieve any other way. I’ve even built an iPhone app called iBlipper with this tech.
This is not a major hack, but scratches an itch I’ve had for years to be able to code typographical animation with HTML and an augmented set of attributes — in this case: effect, duration, and start. Check out the iBlipper blog for the demo (plus video) that originated this code, a happy holidays medley.
The application I use the most on the iPhone is Stanza, a book reader with integrated browse+download from public repositories of CC licensed works as well as out-of-copyright classics (notably Feedbooks & Project Gutenberg).
Among the newer reads available freely is the mind twisting Accelerando. It starts out simply enough in a world with not just reality augmentation, but integrated cognitive amplification. From there, it gets really wacky. Highly recommended.
Of course, I’ve also been reading the few remaining undigested Cory Doctorow titles and enjoyed Rudy Rucker’s Post Singular.
The iPhone isn’t the perfect reading device — I find my natural head on pillow and corresponding hold of the iPhone tricks the accelerometer requiring a slight posture adjustment. It’s better than almost any other device of it’s size however, due to the high DPI of the iPhone screen.
Back in the mid to late 90s, a slew of business was done porting “green screen” applications to web apps. These old text based menu UIs had a steep learning curve but supported high levels of mastery. A user with 5 years experience in a system could execute a half dozen keypresses and move through a set of menu choices in an order of magnitude less time than a novice user. The port of these applications to the web dramatically increased the learnability, friendliness, and approachability of the systems, but had disastrous effects on overall productivity for experienced users.
With Oracle and SAP being early adopters of the Ubiquity command line interface (CLI) as an opportunity to extend web applications, I’m confident that the CLI is actually a frontier for enterprise web applications.
We’ve released an initial command set at VersionOne using our REST api and the jQuery functions in Ubiquity. We have noun types for our core vocabulary. This has a bit of a wrinkle as the product can be configured for Scrum, DSDM, or the Rational RUP meets agile AUP. Our find and checkmail commands have rich previews re-using our iconography. GoTo has a custom nountype to auto-complete to page names. I’ve named commands with the “v1″ prefix, pulling us out of contention with most other commands.
I’m just starting to scratch the surface of what it means to design a good command line vocabulary. Equally critical is working with the Ubiquity team to improve the overall UX. I submitted a patch for some of the changes I recommended in the last post and have teamed up with a Mozilla intern doing tests on Ubiquity.
The work on pie-menus for the ubiquity context menu is very cool. I’ve been a fan of this since before I did the first marking menu Mozilla implementation in ‘01, but I actually place more value in selection independent operations, perhaps using the current page or automated extraction of information from a page. The context menu (of whatever) form is great for selection based operations, but in our enterprise use case, it seems more valuable to craft dynamic nouns. Text selection, and subsequent deep menu navigation, is always going to have a higher raw cost in time and effort than a well crafted command line with fluent keyboard driven auto-complete and selection from suggestions.
With the upcoming release of a Ubiquity (Firefox CLI addon) command set for the VersionOne software application, I’ve had the opportunity to take 3 users into the usability/eye-tracking lab to try out ubiquity and our command set. Alas, Ubiquity escaped capture by my screen recording software, so no pretty pictures!
I’ll summarize my observations here on Ubiquity proper with the caveat that in none of the 3 cases did I allow the user to go through the tutorial or engage deeply with the documentation. Note, only one user really wanted to!
In the spirit of Rapid Iterative Testing & Evaluation (the RITE methodology), I’m using my personal judgment to triage the issues to the ones that I think are likely to happen to many users. In theory, one could bring another dozen people into the lab in order to have more statistical confidence in the quantity of affected users, but the agile approach for an early stage software product like Ubiquity is to work on fixing these issues immediately rather than dedicate more time to assessing severity.
Observations
The about:ubiquity start page is a weak quick start
While the goal of the about:ubiquity page is not exclusively to support new users, the display of this page after an install makes this a core use case. If it fails for this, none of the other info will make a difference! The tutorial is quite good, but requiring a tutorial before demonstrating value is a aggressive technique.
For two of three users, I had them start on this page. Both required a good bit of effort to determine how to make Ubiquity happen. Neither user was able to map from “Change Hot Key” to the information they needed: “the key sequence I need to use is shown here”.
Recommendations: Rewrite headings of Users and Developers to “Using Ubiquity” or “For Users”. Provide a short statement of user value, “A command line for your browser”. Edit the labeling of the hot key input box to read: Invoke Ubiquity by pressing: [ input box ] Click in box to change your hotkey beneath the box.
Update: This change has been made and checked in! (sans intro value statement)
Hitting Enter is Irresistible
For all 3 users involved in the test, it took explicit instruction to get them to pause long enough to see the preview pane. While there’s definite value in Ubiquity as a quick way to jump to a page, the value of the inline preview is likely to be under appreciated by new users.
Recommendations: This one is tougher, but expanding the the preview pane on recognition of a preview enabled command or offering user feedback that data is being fetched would be helpful. I would argue this should be core to Ubiquity and not require each author to implement.
Inconsistent Keyboard Support Guarantees User Error
While this one is clearly on the Ubiquity roadmap, the fact that command and noun suggestions support up/down arrow navigation while previews don’t have a way to invoke the standard actions via arrow nav creates guaranteed user frustration. The worst is when the user first tries to keyboard nav for result previews and thinks no keyboard support is offered at all.
Tab completion of commands was not discovered by two of the three participants. In one especially painful scenario, the user tried to copy the command from the preview list, made a typo, and lost the model for the command name.
Recommmendations: Tab completion is a standard characteristic of command line interfaces and likely not something that would affect users with strong experience using other CLIs. This one may have to be one of the goodies a new user picks up from the docs and tutorial.
Wrapup
Despite these challenges, all 3 users walked away thinking Ubiquity was a valuable offering. Showing them functions on text selections would likely increase that estimation.
We’ll be releasing our Ubiquity command set for VersionOne shortly. Special thanks to Agile software development luminary Jeff Sutherland for participating in the test (pictured to the right).
It’s been a quiet few months on SurfMind as I transition to a UX role at VersionOne, a vendor of software process management tools for Agile methods. I’m still working on the Scrutinizer vision simulator and teaching with the Stompers, but I’m excited to be focusing on enterprise application design.
Software project management involves a wide range of technical experience in it’s user base. To offer power users some additional ways to optimize their use of the toolset, I’ve been working on a Ubiquity vocabulary to navigate, create, and find.
I shared some of my experience at BarCamp Atlanta last weekend.
A new release (0.1.2) is due any moment now with serious enhancements to both the developer experience (e.g. the improved command editor) and the user experience (e.g. better multi word support, order independence in modifiers).
I’ve been imagining a command line for working with places data, given the Labs Ubiquity project. I wrapped up the chats in a zooming presentation, via beta service ZuiPrezi, that walks through a chat with Dietrich on the nitty gritty. Click through for an impressive zooming UI experience with some unique use of rotation.
Mozilla Labs has issued a Call for Participation for “Ideas, Mockups or Prototypes”. Alas, the post seemed to follow Techcrunch’s coverage and thus the one example versus the CFP is getting the buzz on techmeme.
Adaptive Path steps up to the plate in the open source design arena with a compelling video. This is fully rendered scenario, from actors & setting to full screen capture of a rich interaction.
In this excerpt, we see a user working through a view of her browsing history by time to help a friend locate something.
In the second excerpt, an automated content clustering algorithm is conveyed in the organization of items on the x/y axis, where z is time.
Can Open Source UX Beat Commercial Alternatives?
It’s hardly fair to lump Firefox into the average open source UX project experience, given funding and a dedicated UX team and research lab, but MPT’s list of problems with open source usability stem from a long history of involvement in the Mozilla project. This effort by Mozilla labs seems to address several of Matthew’s top issues.
Numbers 3 & 5 are obviously addressed just by the CFP and Mozilla Lab’s existence.
3. Design suggestions often aren’t invited or welcomed.
5. Coding before design
Note, I’m really impressed increased upfront design that the Mozilla team is putting forth in the latest iterations, thanks to MikeB & a stellar UX team. In contrast to the original Firefox UI which was (skillfully) developer driven.
7. Chasing tail-lights.
While there is some really outstanding prior art along all of the dimensions shown in this video, it’s awesome to have a high profile open source project setting the bar against fierce, and highly business constrained, efforts by Apple (Safari) and Microsoft (IE).
The video included in the CFP that isn’t excerpted here, Aza Raskin’s mobile (Z)UI concept, is the most unique in terms of lack of historical precedent and sheer user interface engineering in combining zooming/panning with UI control access. That’s especially welcome, but there’s a lot of accumulated wisdom in the prior art on hypermedia that has yet to be brought to consumers. The ZuiPrezi team seems to share that same conclusion.
This blog’s archives are a veritable run-on sentence on the need and opportunities to enrich browser history. One that I haven’t dug up in a while is the MSR prototype “Data Mountain” which combined zIndex stacks of thumbnails with a topographical landscape model and innovated on the gestures for re-organizing. I had a history based RSS mashup running called “blog mountain” back in ‘04 before I joined the devil
12. Design is high-bandwidth, the Net is low-bandwidth.
There may be a paradigm here for high fidelity concept videos, especially to garner the contributions of top design firms.
Yes, as much as I appreciate the videos, the technology-hacker/designer in me wants to find a satisfying incremental gain using the “zone of promixal development” within the current Mozilla technology.
It’s also challenging to pull out the real defining points from a video mockup. The Adaptive Path Aurora video packs a lot in for example. Collaboration, visual revisitation support, and some serious machine learning and statistical data mining tech.
Getting to Prototype Implementations
Functioning software in the history visualization space is much more feasible in Firefox 3 than ever before. The new places datastore and easy screen capture may create performance bottlenecks for a aspiring developer, but much of this is realizable at the prototype stage.
Screenshots, however, are not enough. We need to be able to extract assets, text or image or whatever, from browsing history to create better memory cues and representations. Imagine being shown the button images that you clicked on as well as the thumbnail. That would better differentiate the site you considered buying from versus the one you did buy from in a historical browsing session. I’ve filed a bug to add cache access support to the FUEL.js browser library.
One of the CFP commenters offers up this set of sketches of a trails implementation. I’m a big fan of the trails notion, and it address collaboration as well as revisitation support. The real magic is not just in the authoring, though Dgray@Xplane captures some of the illusive extracting and subsequent mashup that is missing from common authoring tools. A playback component is needed, ideally along with a standards based representation format, ala microformats?
Designing richly interactive UI controls for the iPhone and the web is an interesting challenge and much more feasible now that touch events are exposed in Safari for javascript hackery. Check outsomeexamples.
On the iphone, you don’t havemousemove. Not much sooner than I had inked this draft, I discovered TLRobinson’s library that ports multitouch events to mouse events. This is one part of the equation, providing “down level” experience for user input in multi-touch designs. For the reverse, touch events can proxy mousedown and up.
With improved javascript perfomance, and toolsets like Aptana, looks like web apps for the iphone are going to be fun. Alas, Canvas is lame compared to SVG compound DOM for direct manipulation UI.
Following up on my first generation video on how to podcast with the iPhone, here’s a look at the 2.0 appstore options for recording, with an eye to podcasts.
The iPhone SDK doesn’t apparently make it easy to record and transfer audio files, so to make a long story short, jailbreaking and then SSH’ing to pull your podcasts is still the only way you’ll get full fluency with big files.
Transfer limited recorders
A bunch of apps haven’t figured out how to get their files off the iphone:
YouNote (free): email is coming soon, but this is picture, text, and audio note taker & manager. It’s likely too clunky for on the go recording, requiring immediate naming of audio recordings. Nifty free app nontheless with note geotagging.
SpeakEasy Video Recorder: audio levels, playback scrubber, unique features include resumption after a call. Attach a pic. Organize in categories.
Of course, the no-transfer restriction is likely easily solved by Jailbreaking and accessing the iPhone filesystem directly.
Recorders with Email Transfer
Some contenders that do have the ability to transfer files include:
Note 2 Self $4.99: interesting customization and unique controls (trigger recording by moving phone to ear). Email compressed or uncompressed.
Audio Recorder $2.99: Add to a recording, rename, email to self or contact, audio levels, playback scrubber. One of the slicker looking apps in the category. CAF core audio format, making email to contact somewhat wacky.
Hybrid web/iphone/operation system applications
Evernote: Evernote gives 40mb of space per month free, with a subscription yielding 500mb at $5/mon. Audio files are auto-synched to the server in .wav format. While there’s no download button, the file is easy to find and there’s an easy greasemonkey fix. Note, no longer windows only! There’s a Leopard client now but audio files are stored in a fairly obfuscated library folder in a sequence of .reco files.
Reqall: An integrated note consolidation web app like Evernote with the unique feature of transcribing audio.
So for short clips, typically under 10mb, you can get away with one of the contenders and email. With most email servers blocking attachments over 10mb, for serious interviews at a conference or routine meeting recordings, this solution is inadequate. Alternatively, an Evernote subscription might work for moderate monthly volume.
The right way to do this is synch recordings with iTunes in a special category.Given privacy concerns & legal restrictions, it makes sense to try and prevent the surreptious recording of audio calls, but hiding the music library from 3rd party apps is a user experience crippling profit inspired outcome.
I haven’t pwn’ed my freshly replaced iPhone 2.0 yet (old one had a broken screen), but is sure is tempting.
I’m a bit fan of tag clouds, yet sense there’s much more to be done. Marti Hearst’s recent work on tag clouds challenges their usefulness as a true visualization or UI, while other acknowledging benefits. More on that some other time…
Here’s a sampling of the best / most-representative stuff I found in a quick run through of the search startup SearchMe’s results… displayed in their new Stacks widget.
About 80% of them are from a half dozen queries I ran. The other 20% (mainly research articles) I had to manually add. The widget is quite slick, though I wish there were a few more items onscreen at one time. I’ve already asked the SearchMe folks when the API will be available for creating “stacks”. I’d love to hook this up to my delicious feed or build a widget to auto-create a stack for all of the links in a blog post.
Rich document previews for the web are here! I can’t help but wish for more — but most of the best ideas of HCI over the last 20 years are yet to be deployed to the masses. Hats off to the folks at SearchMe for the acumen and perserverance to get this feature to market.
It’s been a long time since my hyperactive extension building days of ‘01-02. My first extension to make out of basic prototyping stage in 6 years is now available, timed to coincide with the new Firefox 3: StomperNet Ranker.
The tool features:
An interactive SVG-based visualization of result overlap in the top 20 results for Google, Yahoo, and Live Search
“Brushing” feedback highlighting same domain results and displaying a info panel
Click to preview the result page
Tabs for the full result views from each engine
Access to the 7 search markets
It also integrates the Scrutinizer browser, which simulates foveal and peripheral vision for design inspection and more informative observation of use, with a “Scrutinize This Page” option.
We used the Komodo IDE (howto pdf) to build it. It makes getting started pretty simple and I roped in two members of our StomperNet dev team who had no experience with extension development more easily because of it.
Parsing search results with the DOM is a breeze compared to using regular expressions, no matter how good a PERL hacker you are. The tool also features interactive SVG, sharing CSS between the XUL and SVG layers. I’ve long been a proponent of SVG in Firefox, notably in my MS Thesis on menu mousing behavior. It’s an under appreciated part of the Firefox UI toolkit.
Note: Updated from original post for improved accuracy.
Made a bit of progress tonight in using places to assess my personal success and use of the big 3 engines. I’m not quite ready to share the code, but using Firefox places sqlite database and the google visualization API I came up with the following:
Sessions
Clicks
Engine
ClicksPerSession
705
2340
.www.google.com
3.32
39
38
.search.live.com
0.97
62
54
.search.yahoo.com
0.87
One of the subleties of Google’s brand is the intense degree of trust users place in their results. This not only leads to a perceived advantage in quality, but also to a greater level of trust. This results in users returning to Google for another click as opposed to spending more time on the site they land on or one it links to.
My sql for this is:
select count(distinct s.session) as N, count(distinct s2.from_visit) as clicks, rev_host from moz_historyvisits s, moz_places p, moz_historyvisits s2 where s.place_id = p.id and s2.from_visit = s.id and( rev_host like ‘%moc.elgoog.www%’ or rev_host like ‘%moc.hcraes.nsm%’ or rev_host like ‘%moc.evil.hcraes%’ or rev_host = ‘moc.oohay.hcraes.’) and (p.url like ‘%q=%’ or p.url like ‘%p=%’) group by rev_host
If we exclude queries with no clicks, we get
Sessions
Clicks
Engine
ClicksPerSession
606
2340
.www.google.com
3.86
25
38
.search.live.com
1.52
40
54
.search.yahoo.com
1.35
My sql for this is:
select count(distinct s.session) as N, count(distinct s2.from_visit) as clicks, rev_host from moz_historyvisits s join moz_places p ON s.place_id = p.id LEFT OUTER JOIN moz_historyvisits s2 ON s2.from_visit = s.id where ( rev_host like ‘%moc.elgoog.www%’ or rev_host like ‘%moc.hcraes.nsm%’ or rev_host like ‘%moc.evil.hcraes%’ or rev_host = ‘moc.oohay.hcraes.’) and (p.url like ‘%q=%’ or p.url like ‘%p=%’) group by rev_host
So session abandonment is:
Google
Live
Yahoo
14%
36%
36%
Another critical stat is the frequency of refinement activities. Looking at sequences, I see 36% of sessions involving query to query chains on Google, 8% on live, and and 40% on Yahoo (sql).
While my search behavior is rather abnormal, both through extreme geekitude and SEO activities, my goal with this work is to find a way for many users to contribute this data to form an independent analysis of search experience.
It’s been a long time since the Mozilla 1.0 party in Boston, but I’m happy to say that the Mozilla manifesto animations I did back in 2001 still work today, even on the iPhone. The beauty of standards… one and two.
This is the blog of Andy Edmonds, HCI professional, web hacker, and cognitive science enthusiast.
Check out my agile software develpment / user experience blog at UXagile.com. The opinions here are expressly mine.