User:EpochFail/HAPPI

This is the documentation for the User:EpochFail/HAPPI user script (see code). This script makes a modification to MediaWiki's edit pane to add highlighting to a revision's words.

A study of this tool is currently being conducted by Aaron Halfaker ([mailto:&#104;&#097;&#108;&#102;&#097;&#107;&#064;&#099;&#115;&#046;&#117;&#109;&#110;&#046;&#101;&#100;&#117; &#104;&#097;&#108;&#102;&#097;&#107;&#064;&#099;&#115;&#046;&#117;&#109;&#110;&#046;&#101;&#100;&#117;]). For more information on the current study, see the consent form.

Purpose
HAPPI is a user interface modification for the English Wikipedia that is designed to give you insight into your editing experience. By analyzing the history of an article, HAPPI highlights words while you edit them to show you how those words have persisted through the revision history of an article.

Installation
To use this script visit the consent form or just put this code in your personal /vector.js page:

Then you need to wait a minute and then bypass your browser cache to load the modification the first time.

Note: If you are using NoScript with Firefox, you will need to allow scripts from grouplens.org to enable HAPPI functionality.

Editing
The changes that the tool makes to your interface should only be evident while editing a page in Wikipedia. You should see the addition of a few new controls above the edit pane. These controls will allow you to toggle between normal and highlighted editing. In order to generate the history highlighting that makes this tool interesting, a significant amount of computation will need to take place. Whenever possible, HAPPI will try to outsource these computation to the Grouplens servers at the University of Minnesota. If the servers are down or for some reason aren't responding quickly enough, HAPPI will perform approximate calculations itself in your browser.

Outsourced computation
HAPPI is waiting for the Grouplens servers to respond. The server needs to do a lot of work to generate the history metrics for this page. It will continue computing to generate an updated history for the next time you need it. Word history has been loaded from the Grouplens server and is ready to be turned on The server responded with an error or is taking too long. This could mean that the server is down or is being overloaded with requests. Status indicators for interacting with the Grouplens history cache. Since javascript script does not provide the best environment for doing memory intensive computations, HAPPI will try to push the work off on the Grouplens servers every time the highlighting is enabled. If for some reason the Grouplens servers can't complete the persistence calculations in a reasonable amount of time (heavy server load, timeouts, etc.) HAPPI will fall back on computing the history metrics itself.

Server status indicator
An icon should appear to the right of the highlighting toggle button. This status indicator will alert to the the state of the Grouplens servers and the computations they are doing for your editing session.



In-browser computation
Due to the excessive size of some articles, we have developed two types of calculation mechanisms that can be run in a resonable amount of time within your browser. The linear calculation generates word history information from the last 50 revisions in an article. This calculation is most useful for relatively small pages since processing 50 large revisions can be very time and memory intensive. For large pages, we have developed an approximate logarithmic calculation that runs much faster and uses less memory, but is less accurate. HAPPI uses a simple set of rules to determine which calculation method is appropriate for the article you are currently editing and reports which calculation it is using via the progress bar.



Logging
In order to deeply understand the effectiveness of this gadget, we perform minor logging of some of your actions while using the tool. This logging only takes place during your use of the tool within Wikipedia and halts immediately when the tool is uninstalled. Your actions will not be tracked across pages and the data retrieved from this logging system will never be published in a personally identifiable way and will either be used to improve the functioning of HAPPI or for non-profit, academic usability research.

Support
If you have any questions/suggestions/concerns/bug reports, post on EpochFail's talk page. Minor bugs will usually be fix in less than 24 hours.

Technical details

 * Compatibility: Tested and works in Firefox 2.0-3.x, Opera and Chrome. Users have reported bugs when using IE 8, those bugs are planned to be fixed in the next iteration.
 * Skins: The tool has been tested in the monobook and vector skins, but should work in the majority of other skins.
 * The code: The script itself (the javascript code) is at User:EpochFail/HAPPI.js.

This script was created by and is maintained by: EpochFail