Difference between revisions of "User Experience/OpenOffice.org User Feedback Program"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Privacy)
 
(13 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The OpenOffice.org User Feedback Program is a feature that collects anonymously data about how OpenOffice.org is used. This information is used to better understand how people use OpenOffice.org. Especially with regards to the user interface.
+
{{User Experience Community}}
 +
{{Old|EN}}
  
== Motivation ==
+
The OpenOffice.org User Feedback Program (aka OpenOffice.org Improvement Program) is a feature that collects anonymous data about how OpenOffice.org is used. This information is used to better understand how people use OpenOffice.org. Especially with regards to the user interface.
With regards to the [http://wiki.services.openoffice.org/wiki/Renaissance Renaissance] project it is important to judge on user interface changes based on data instead of gut feelings.
+
In the past, too many decisions have been made without having data which reflect the impact of a changes to a specific user group.
+
  
The User Feedback program helps to answers on the following questions:
 
  
* Which commands are used frequently?
+
== Motivation  ==
* Which are not?
+
* How often are they used?
+
* Are these commands called from the:
+
** menu, context menu, tool bar, keyboard shortcut
+
* In which order are these commands used?
+
  
== Privacy ==
+
With regards to the [http://wiki.services.openoffice.org/wiki/Renaissance Renaissance] project it is important to judge on user interface changes based on data instead of gut feelings. In the past, too many decisions have been made without having data which reflects the impact of a change to a specific user group.  
* The data is collected anonymously
+
* The feature does not collect any document related keyboard input
+
* The feature does not send any user specific type of data
+
* No relation ship between IP Address and sent report by SOAP request
+
* No data will be collected if users do not apply to this program
+
* For details refer to http://www.sunsource.net/TUPPCP.html
+
  
== Analysis ==
+
The User Feedback program helps to answer the following questions:  
* The Results will be published on http://wiki.services.openoffice.org/wiki/Renaissance:Phase_1
+
  
== Roadmap ==
+
*Which commands are used?
 +
*How often are they used?
 +
*In which order are these commands used?
 +
*Which commands are never used?
 +
*Are these commands called from the:
 +
**menu, context menu, toolbar, keyboard shortcut
  
* '''Mile Stone 1:''' December 18, 2008: [http://extensions.services.openoffice.org/project/OOo_User_Feedback Beta Builds available for public testing]
+
== Privacy  ==
* '''Mile Stone 2:''' OpenOffice.org 3.1, Release: Integration in OpenOffice.org
+
  
== User Interface ==
+
*The data is collected anonymously
=== Query Dialog ===
+
*The feature does not collect any document related keyboard input
 +
*The feature does not send any user specific type of data
 +
*No relation ship between IP Address and sent report by SOAP request
 +
*No data will be collected if users do not apply to this program
 +
*For details refer to http://www.sunsource.net/TUPPCP.html
 +
*Oracle's Privacy Policy is this: http://www.oracle.com/html/privacy.html
  
The dialog occurs after the '''second start''' of OpenOffice.org
+
== Analysis  ==
  
[[Image:Usage.png]]
+
*The Results will be published on http://wiki.services.openoffice.org/wiki/Renaissance:Phase_1
  
'''Options:'''
+
== Roadmap  ==
  
* Yes:
+
*'''Mile Stone 1:''' December 18, 2008: [http://extensions.services.openoffice.org/project/OOo_User_Feedback Beta Builds available for public testing]
** Activates the feature.
+
*'''Mile Stone 2:''' OpenOffice.org 3.1, Release: Integration in OpenOffice.org
** Data collection starts immediately until the user disables the feature in "Tools->Options->Improvement Program"
+
  
* No:
+
== User Interface  ==
** Does not activate the feature. '''No data will be collected or transmitted'''
+
** The feature will not ask again for participating the program.
+
  
* Info Icon
+
=== Query Dialog ===
** The icon Points to
+
  http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program
+
  
+
The dialog occurs after the '''second start''' of OpenOffice.org
'''Strings used'''
+
 
 +
[[Image:Usage.png]]
 +
 
 +
'''Options:'''  
 +
 
 +
*Yes:
 +
**Activates the feature.
 +
**Data collection starts immediately until the user disables the feature in "Tools->Options->Improvement Program"
 +
 
 +
*No:
 +
**Does not activate the feature. '''No data will be collected or transmitted'''
 +
**The feature will not ask again for participating the program.
 +
 
 +
*Info Icon
 +
**The icon Points to
 +
 
 +
http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program
  
<pre>
+
<br> '''Strings used'''
$PRODUCTNAME Improvement Program
+
<pre>$PRODUCTNAME Improvement Program
  
 
Help Optimize the Quality of $PRODUCTNAME
 
Help Optimize the Quality of $PRODUCTNAME
Line 73: Line 79:
  
 
Get more information about the $PRODUCTNAME Improvement Program
 
Get more information about the $PRODUCTNAME Improvement Program
</pre>
+
</pre>  
 +
=== Tools Options Dialog  ===
  
=== Tools Options Dialog ===
+
[[Image:Usage option.png]]
  
[[Image:Usage_option.png]]
+
'''Strings used'''
 +
<pre>Improvement Program
  
'''Strings used'''
 
<pre>
 
 
Tracked data
 
Tracked data
 
Number of reports send:
 
Number of reports send:
Line 87: Line 93:
  
 
Show Data
 
Show Data
</pre>
+
</pre>  
 +
== Disabling the Logging of Data  ==
  
== Disabling the Logging of Data ==
+
The ''org.OpenOffice.Office.Logging.OOoImprovement.EnablingAllowed'' configuration entry stored in the '''Logging.xcu''' allows administrators to switch the logging of data globally OFF. The boolean value needs to be set from '''true''' to '''false'''.  
The ''org.OpenOffice.Office.Logging.OOoImprovement.EnablingAllowed'' configuration entry stored in the '''Logging.xcu''' allows administrators to switch the logging of data globally OFF.
+
The boolean value needs to be set from '''true''' to '''false'''.
+
  
== Usage Data Collected ==
+
== Usage Data Collected ==
The collected data is stored in a human readable CSV File at a location set in /org.openoffice.Office.Logging.UiEventslogger.LogPath (File: Logging.xcu)
+
  
* The data will get packed in a zip-file before upload.
+
The collected data is stored in a human readable CSV File at a location set in /org.openoffice.Office.Logging.UiEventslogger.LogPath (File: Logging.xcu)
* When the data was packed successfully, the uncompressed CSV-File is
+
deleted to save disc space. If the upload attempt fails, only the zipped
+
file will be kept for retries.
+
  
=== Types of Data Collected ===
+
*The data will get packed in a zip-file before upload.
 +
*When the data was packed successfully, the uncompressed CSV-File is
  
The following types of data are collected:
+
deleted to save disc space. If the upload attempt fails, only the zipped file will be kept for retries.
  
* Tool bar Buttons
+
=== What data is IS being collected  ===
** Including Add-Ons
+
* Menu Items
+
** Including Add-Ons
+
* Context Menu Items
+
* Fonts applied by using the menu
+
* Font sizes applied by using the menu
+
* Buttons, like OK, Cancel, etc.
+
* Document - , Paragraph language applied by using the menu or status bar
+
  
* Each item call provides a:
+
The following types of data are collected:  
** Time stamp
+
** An information from which module the item has been called
+
  
=== Example Log ===
+
*Tool bar Buttons
~ 150 kByte uncompressed / 20 kBytes compressed in 30 min. while creating a short document
+
**Including Add-Ons
 +
*Menu Items
 +
**Including Add-Ons
 +
*Context Menu Items
 +
*Fonts applied by using the menu
 +
*Font sizes applied by using the menu
 +
*Buttons, like OK, Cancel, etc.  
 +
*Document - , Paragraph language applied by using the menu or status bar
  
<pre>
+
*Each item call provides a:
event no,thread,timestamp,eventtype,origin,uno url,parent id,window type,id,method,parameter
+
**Time stamp
 +
**An information from which module the item has been called
 +
 
 +
=== What data is NOT being collected  ===
 +
 
 +
*User names and passwords
 +
*Any type of document content
 +
*Paths, filenames
 +
*User's source code
 +
 
 +
=== Example Log  ===
 +
 
 +
~ 150 kByte uncompressed / 20 kBytes compressed in 30 min. while creating a short document (this is a bit outdated)
 +
<pre>event no,thread,timestamp,eventtype,origin,uno url,parent id,window type,id,method,parameter
 
1,1,2008-06-11T10:58:05.85,vcl,,,40368,326,.HelpId:StartCenter:WriterButton,Click,
 
1,1,2008-06-11T10:58:05.85,vcl,,,40368,326,.HelpId:StartCenter:WriterButton,Click,
 
2,1,2008-06-11T10:58:05.85,dispatch,unknown origin,private:factory/swriter,,,,,
 
2,1,2008-06-11T10:58:05.85,dispatch,unknown origin,private:factory/swriter,,,,,
Line 143: Line 155:
 
2446,1,2008-06-11T11:25:12.31,dispatch,unknown origin,.uno:GoDown,,,,,
 
2446,1,2008-06-11T11:25:12.31,dispatch,unknown origin,.uno:GoDown,,,,,
 
2447,1,2008-06-11T11:25:17.47,dispatch,MenuBarManager,.uno:SaveAs,,,,,
 
2447,1,2008-06-11T11:25:17.47,dispatch,MenuBarManager,.uno:SaveAs,,,,,
2448,1,2008-06-11T11:25:26.63,dispatch,unknown origin,vnd.sun.star.help://swriter/33368?Language=en-US&System=UNIX#bm_id3159242,,,,,
+
2448,1,2008-06-11T11:25:26.63,dispatch,unknown origin,vnd.sun.star.help://swriter/33368?Language=en-US&amp;System=UNIX#bm_id3159242,,,,,
 
2449,1,2008-06-11T11:25:33.31,vcl,,,,0,52821,TypeKeys,1
 
2449,1,2008-06-11T11:25:33.31,vcl,,,,0,52821,TypeKeys,1
 
2450,1,2008-06-11T11:25:33.63,vcl,,,,0,52821,TypeKeys,1
 
2450,1,2008-06-11T11:25:33.63,vcl,,,,0,52821,TypeKeys,1
 
2451,1,2008-06-11T11:25:34.00,vcl,,,,0,52821,TypeKeys,1
 
2451,1,2008-06-11T11:25:34.00,vcl,,,,0,52821,TypeKeys,1
 
2452,1,2008-06-11T11:25:34.29,vcl,,,,0,52821,TypeKeys,1
 
2452,1,2008-06-11T11:25:34.29,vcl,,,,0,52821,TypeKeys,1
</pre>
+
</pre>  
 +
=== Abbreviations  ===
 +
 
 +
==== origin app  ====
 +
 
 +
The "origin app" field in a logevent is abbreviated to keep the logs short.
 +
 
 +
{|
 +
|-
 +
| App
 +
| Abbrevation
 +
|-
 +
| com.sun.star.text.TextDocument
 +
| W
 +
|-
 +
| com.sun.star.sheet.SpreadsheetDocument
 +
| C
 +
|-
 +
| com.sun.star.presentation.PresentationDocument
 +
| I
 +
|-
 +
| com.sun.star.drawing.DrawingDocument
 +
| D
 +
|}
 +
 
 +
[http://svn.services.openoffice.org/opengrok/xref/Current%20(trunk)/comphelper/source/misc/uieventslogger.cxx?r=267721#72 see source]
 +
 
 +
<br>
 +
 
 +
==== origin widget  ====
 +
 
 +
The "origin widget" field in a logevent is abbreviated to keep the logs short.
 +
 
 +
{|
 +
|-
 +
| Widget
 +
| Abbrevation
 +
|-
 +
| ButtonToolbarController
 +
| 0
 +
|-
 +
| ComplexToolbarController
 +
| 1
 +
|-
 +
| ControlMenuController
 +
| 2
 +
|-
 +
| FontMenuController
 +
| 3
 +
|-
 +
| FontSizeMenuController
 +
| 4
 +
|-
 +
| FooterMenuController
 +
| 5
 +
|-
 +
| GenericToolbarController
 +
| 6
 +
|-
 +
| HeaderMenuController
 +
| 7
 +
|-
 +
| LanguageSelectionMenuController
 +
| 8
 +
|-
 +
| LangSelectionStatusbarController
 +
| 9
 +
|-
 +
| MacrosMenuController
 +
| 10
 +
|-
 +
| MenuBarManager
 +
| 11
 +
|-
 +
| NewMenuController
 +
| 12
 +
|-
 +
| ObjectMenuController
 +
| 13
 +
|-
 +
| RecentFilesMenuController
 +
| 14
 +
|-
 +
| ToolbarsMenuController
 +
| 15
 +
|-
 +
| SfxToolBoxControl
 +
| 16
 +
|-
 +
| SfxAsyncExec
 +
| 17
 +
|-
 +
| AcceleratorExecute
 +
| 18
 +
|}
 +
 
 +
[http://svn.services.openoffice.org/opengrok/xref/Current%20(trunk)/comphelper/source/misc/uieventslogger.cxx?r=267721#80 see source]
 +
 
 +
== Meta Data  ==
 +
 
 +
The following Meta Data will be transferred:
 +
 
 +
*Office Version
 +
*Build ID
 +
*Office Locale
 +
*Platform (Windows XP, Windows Vista, Linux + Desktop Info, Mac, Solaris + Desktop Info)
 +
*First time sender (used to count total number of participant)
 +
*Report number
 +
 
 +
=== Flags and Meta Data for QA Usage  ===
 +
 
 +
The following Meta Data will be transferred:
 +
 
 +
*Sent for testing purposes
 +
 
 +
The test data used is the same as the Metadata provided by the ReportMail.
 +
 
 +
== Transferring Data  ==
 +
 
 +
*The data will be transfered by using SOAP over HTTP
 +
*The data will be transmitted:
 +
**30 seconds after startup, compressed (ZIP-format)
 +
**OpenOffice.org sends one send request per tracked session
 +
 
 +
*If sending of usage data was not successful the data collecting feature retries sending the data on each start up of OOo again. If sending was no success after 25 attempts the data collecting feature disables it selves. The tracked data will be deleted.
 +
 
 +
== Storing Data  ==
 +
 
 +
The data will be stored on client-side (Office itself) and on server-side.
 +
 
 +
=== Storing Data Office  ===
 +
 
 +
Data will be stored under: file://($user)/temp/Feedback (see http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Predefined_Variables)
 +
 
 +
=== Storing Data server side  ===
 +
 
 +
The sent data via SOAP will be received by an OpenOffice.org server and stored in an OpenOffice.org version-related database. So each OpenOffice.org version will have an own database for the user feedback. The collected data will be available for data-mining later. Currently we are in a draft modus.
 +
 
 +
To guarantee user privacy we won't collect any IP-addresses or customer data. The report-data has '''no''' personal data inside.
 +
 
 +
== Implementation Details  ==
 +
 
 +
=== Office Configuration Entries  ===
 +
 
 +
==== Core  ====
 +
 
 +
*org.OpenOffice.Office.Logging.OOoImprovement.LogPath (string)
 +
*org.OpenOffice.Office.Logging.OOoImprovement.IdleTimeout (int)
 +
*org.OpenOffice.Office.Logging.OOoImprovement.EnablingAllowed (boolean)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.OfficeStartCountdown (int)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.InvitationAccepted (boolean)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.ShowedInvitation (boolean)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.DeliveredPrebundled (boolean)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.UploadedReports (int)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.LoggedEvents (int)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.FailedAttempts (int)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.SoapUrl (string)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.SoapIdAdditions (string)
 +
*org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.ReporterEmail (string)
 +
 
 +
=== UNO Services  ===
 +
 
 +
==== com.sun.star.oooimprovement.Core (com.sun.star.comp.extensions.oooimprovecore.Core)  ====
 +
 
 +
*property: readonly bool UiEventsLoggerEnabled
 +
 
 +
Is true, if the logger is enabled.
 +
 
 +
*property: readonly long SessionLogEventCount
 +
 
 +
The number of events logged in the current Office session (since start).
 +
 
 +
*method: inviteUser()
 +
 
 +
Present the user with the invitation to take part in usage tracking.
 +
 
 +
==== com.sun.star.oooimprovement.CoreController (com.sun.star.comp.extensions.oooimprovement.CoreController)  ====
  
== Meta Data ==
+
*method: bool enablingEventsLoggerAllowed(short Version)
The following Meta Data will be transferred:
+
  
* Office Version
+
The Eventlogger will only enable itself when this method returns true. The method checks the configuration keys in org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.
* Build ID
+
* Office Locale
+
* Platform (Windows XP, Windows Vista, Linux + Desktop Info, Mac, Solaris + Desktop Info)
+
* First time sender (used to count total number of participant)
+
* Report number
+
  
=== Flags and Meta Data for QA Usage ===
+
*method: bool showBuiltinOptionsPage(short Version)
  
The following Meta Data will be transferred:
+
If this returns true, the usage tracking options and statistics show up in Tools-&gt;Options.
  
* Sent for testing purposes
+
==== com.sun.star.logging.CsvFormatter (com.sun.star.comp.extensions.CsvFormatter) ====
  
The test data used is the same as the Metadata provided by the ReportMail.
+
This service allows formatting logs with the com.sun.star.logging-framework in CSV-Format.  
  
== Transferring Data ==
+
=== Packages  ===
* The data will be transfered by using SOAP over HTTP
+
* The data will be transmitted:
+
** 30 seconds after startup, compressed (ZIP-format)
+
** OpenOffice.org sends one send request per tracked session
+
  
* If sending of usage data was not successful the data collecting feature retries sending the data on each start up of OOo again. If sending was no success after 25 attempts the data collecting feature disables it selves. The tracked data will be deleted.
+
The code/configuration for the user feedback program can be found in the following modules:
  
== Storing Data ==
+
*module officecfg for configuration keys
The data will be stored on client-side (Office itself) and on server-side.
+
*module svx for configuration dialogs
 +
*module comphelper for the eventlogger
 +
*module framework for the dispatch-event hooks
 +
*modules tools/automation for VCL-event hooks
 +
*module extensions for:
 +
**'''liboooimprovecore''' ''(packed in ooobasis*-core01-*.rpm on unix)''
 +
***the UNO-API (com.sun.star.oooimprovement.Core) to the eventlogger
 +
**'''liboooimprovement''' ''(packed in ooobasis*-core03-*.rpm on unix)''
 +
***the uploading/invitation implementation
 +
***the UNO-API to the uploading/invitation implementation (com.sun.star.oooimprovement.CoreController)
 +
**'''FOR SUN-BUILDS ONLY (BUILD_SPECIAL):''' '''Jobs.xcu''' needed to enable the user feedback program ''( packed in ooobasis*-oooimprovement-*.rpm on unix)''
  
=== Storing Data Office ===
+
The code was introduced with the following cws: logger2, oooimprovementcorefixes, oooimprovement2.  
Data will be stored under:
+
file://($user)/temp/Feedback
+
(see http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Predefined_Variables)
+
  
=== Storing Data server side ===
+
=== Jobs  ===
The sent data via SOAP will be received by an OpenOffice.org server and stored in an OpenOffice.org version-related database. So each OpenOffice.org version will have an own database for the user feedback. The collected data will be available for data-mining later. Currently we are in a draft modus.
+
  
To guarantee user privacy we won't collect any IP-addresses or customer data. The report-data has '''no''' personal data inside.
+
Triggered by '''onFirstVisibleTask''':
  
== Implementation Details ==
+
*30 seconds after startup an asynchronous job compresses and uploads data.  
=== Office Configuration Entries ===
+
*on the second start the invitation to the User Feedback Program gets displayed.
==== Core ====
+
* org.OpenOffice.Office.Logging.OOoImprovement.LogPath (string)
+
* org.OpenOffice.Office.Logging.OOoImprovement.IdleTimeout (int)
+
* org.OpenOffice.Office.Logging.OOoImprovement.EnablingAllowed (boolean)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.OfficeStartCountdown (int)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.InvitationAccepted (boolean)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.ShowedInvitation (boolean)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.DeliveredPrebundled (boolean)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.UploadedReports (int)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.LoggedEvents (int)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.FailedAttempts (int)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.SoapUrl (string)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.SoapIdAdditions (string)
+
* org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.ReporterEmail (string)
+
  
=== UNO Services ===
+
=== Filenames  ===
==== com.sun.star.oooimprovement.Core (com.sun.star.comp.extensions.oooimprovecore.Core) ====
+
* property: readonly bool UiEventsLoggerEnabled
+
Is true, if the logger is enabled.
+
* property: readonly long SessionLogEventCount
+
The number of events logged in the current Office session (since start).
+
* method: inviteUser()
+
Present the user with the invitation to take part in usage tracking.
+
==== com.sun.star.oooimprovement.CoreController (com.sun.star.comp.extensions.oooimprovement.CoreController) ====
+
* method: bool enablingEventsLoggerAllowed(short Version)
+
The Eventlogger will only enable itself when this method returns true. The method checks the
+
configuration keys in org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.
+
* method: bool showBuiltinOptionsPage(short Version)
+
If this returns true, the usage tracking options and statistics show up in Tools->Options.
+
  
==== com.sun.star.logging.CsvFormatter (com.sun.star.comp.extensions.CsvFormatter) ====
+
*$LOGPATH/Current.csv (created by core)
This service allows formatting logs with the com.sun.star.logging-framework in CSV-Format.
+
*$LOGPATH/OOoImprove-ISOTIMESTAMP.csv (created by core)
 +
*$LOGPATH/OOoImprove-ISOTIMESTAMP.zip (created by extension)  
 +
*OOoImprovement.oxt (contains liboooimprovementXX.xxx) (now part of OOo)
 +
*liboooimprovecoreXX.xxx
  
=== Packages ===
+
= Project Bugs and Enhancements  =
The code/configuration for the user feedback program can be found in the following modules:
+
* module officecfg for configuration keys
+
* module svx for configuration dialogs
+
* module comphelper for the eventlogger
+
* module framework for the dispatch-event hooks
+
* modules tools/automation for VCL-event hooks
+
* module extensions for:
+
** '''liboooimprovecore''' ''(packed in ooobasis*-core01-*.rpm on unix)''
+
*** the UNO-API (com.sun.star.oooimprovement.Core) to the eventlogger
+
** '''liboooimprovement''' ''(packed in ooobasis*-core03-*.rpm on unix)''
+
*** the uploading/invitation implementation
+
*** the UNO-API to the uploading/invitation implementation (com.sun.star.oooimprovement.CoreController)
+
** '''FOR SUN-BUILDS ONLY (BUILD_SPECIAL):''' '''Jobs.xcu''' needed to enable the user feedback program ''( packed in ooobasis*-oooimprovement-*.rpm on unix)''
+
  
The code was introduced with the following cws: logger2, oooimprovementcorefixes, oooimprovement2.
+
[http://qa.openoffice.org/issues/buglist.cgi?issue_type=DEFECT&issue_type=ENHANCEMENT&issue_type=FEATURE&issue_type=PATCH&issue_status=UNCONFIRMED&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=RESOLVED&email1=&emailtype1=exact&emailassigned_to1=1&email2=&emailtype2=exact&emailreporter2=1&issueidtype=include&issue_id=&changedin=&votes=&chfieldfrom=&chfieldto=&chfieldvalue=&short_desc=OpenOffice+Improvement+program%3A&short_desc_type=allwords&long_desc=&long_desc_type=allwords&issue_file_loc=&issue_file_loc_type=fulltext&status_whiteboard=&status_whiteboard_type=fulltext&keywords=&keywords_type=anytokens&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=mail+merge+1&newqueryname=&order=%27Importance%27&Submit+query=Submit+query Query for Bugs and Features]
  
=== Jobs ===
+
== References ==
Triggered by '''onFirstVisibleTask''':
+
* 30 seconds after startup an asynchronous job compresses and uploads data.
+
* on the second start the invitation to the User Feedback Program gets displayed.
+
  
=== Filenames ===
+
*[http://qa.openoffice.org/issues/show_bug.cgi?id=90370 OpenOffice.org Issue]
* $LOGPATH/Current.csv (created by core)
+
*[http://www.netbeans.org/about/usage-tracking.html NetBeans Usage Tracking]
* $LOGPATH/OOoImprove-ISOTIMESTAMP.csv (created by core)
+
*[http://Ingimp.org ingimp.org]
* $LOGPATH/OOoImprove-ISOTIMESTAMP.zip (created by extension)
+
*[http://wiki.mozilla.org/Spectator Mozilla Spectator]
* OOoImprovement.oxt (contains liboooimprovementXX.xxx) (now part of OOo)
+
*[http://wiki.mozilla.org/Browser_Metrics Mozilla Spectator Metrics]
* liboooimprovecoreXX.xxx
+
*[http://labs.mozilla.com/2008/03/introducing-test-pilot/ Spectator Test Pilot]
 +
*[http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Example Example Extension]
 +
*[http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/File_Format Extension File Format]
  
= Project Bugs and Enhancements =
+
== Status Meetings  ==
[http://qa.openoffice.org/issues/buglist.cgi?issue_type=DEFECT&issue_type=ENHANCEMENT&issue_type=FEATURE&issue_type=PATCH&issue_status=UNCONFIRMED&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&issue_status=RESOLVED&email1=&emailtype1=exact&emailassigned_to1=1&email2=&emailtype2=exact&emailreporter2=1&issueidtype=include&issue_id=&changedin=&votes=&chfieldfrom=&chfieldto=&chfieldvalue=&short_desc=OpenOffice+Improvement+program%3A&short_desc_type=allwords&long_desc=&long_desc_type=allwords&issue_file_loc=&issue_file_loc_type=fulltext&status_whiteboard=&status_whiteboard_type=fulltext&keywords=&keywords_type=anytokens&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=mail+merge+1&newqueryname=&order=%27Importance%27&Submit+query=Submit+query Query for Bugs and Features]
+
  
==References==
+
*[http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program_Status_Meeting:_2008-10-22 2008-10-22]  
* [http://qa.openoffice.org/issues/show_bug.cgi?id=90370 OpenOffice.org Issue]
+
*[http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program_Status_Meeting:_2008-10-15 2008-10-15]  
* [http://www.netbeans.org/about/usage-tracking.html NetBeans Usage Tracking]
+
*[http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program_Status_Meeting:_2008-10-08 2008-10-08]
* [http://Ingimp.org ingimp.org]
+
* [http://wiki.mozilla.org/Spectator Mozilla Spectator]
+
* [http://wiki.mozilla.org/Browser_Metrics Mozilla Spectator Metrics]
+
* [http://labs.mozilla.com/2008/03/introducing-test-pilot/ Spectator Test Pilot]
+
* [http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Example Example Extension]
+
* [http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/File_Format Extension File Format]
+
  
== Status Meetings ==
+
== Presentations  ==
* [http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program_Status_Meeting:_2008-10-22 2008-10-22]
+
* [http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program_Status_Meeting:_2008-10-15 2008-10-15]
+
* [http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program_Status_Meeting:_2008-10-08 2008-10-08]
+
  
== Presentations ==
+
*[http://marketing.openoffice.org/ooocon2008/programme/friday_1447.pdf OOo Con 2008: Numbers, Numbers, Numbers, or how data helps to improve the OOo User Interface]  
* [http://marketing.openoffice.org/ooocon2008/programme/friday_1447.pdf OOo Con 2008: Numbers, Numbers, Numbers, or how data helps to improve the OOo User Interface]
+
*[http://wiki.services.openoffice.org/w/images/4/4d/Numbers-numbers-numbers-WUD-HH-2008.pdf Presentation at World Usability Day 2008 in Hamburg (in German)]
* [http://wiki.services.openoffice.org/w/images/4/4d/Numbers-numbers-numbers-WUD-HH-2008.pdf Presentation at World Usability Day 2008 in Hamburg (in German)]
+

Latest revision as of 12:52, 9 July 2018

ux-ooo-logo-rgb-129-61.png

ux.openoffice.org

Quick Navigation

Team


Book-old.png    This article is outdated.    

The OpenOffice.org User Feedback Program (aka OpenOffice.org Improvement Program) is a feature that collects anonymous data about how OpenOffice.org is used. This information is used to better understand how people use OpenOffice.org. Especially with regards to the user interface.


Motivation

With regards to the Renaissance project it is important to judge on user interface changes based on data instead of gut feelings. In the past, too many decisions have been made without having data which reflects the impact of a change to a specific user group.

The User Feedback program helps to answer the following questions:

  • Which commands are used?
  • How often are they used?
  • In which order are these commands used?
  • Which commands are never used?
  • Are these commands called from the:
    • menu, context menu, toolbar, keyboard shortcut

Privacy

  • The data is collected anonymously
  • The feature does not collect any document related keyboard input
  • The feature does not send any user specific type of data
  • No relation ship between IP Address and sent report by SOAP request
  • No data will be collected if users do not apply to this program
  • For details refer to http://www.sunsource.net/TUPPCP.html
  • Oracle's Privacy Policy is this: http://www.oracle.com/html/privacy.html

Analysis

Roadmap

User Interface

Query Dialog

The dialog occurs after the second start of OpenOffice.org

Usage.png

Options:

  • Yes:
    • Activates the feature.
    • Data collection starts immediately until the user disables the feature in "Tools->Options->Improvement Program"
  • No:
    • Does not activate the feature. No data will be collected or transmitted
    • The feature will not ask again for participating the program.
  • Info Icon
    • The icon Points to
http://wiki.services.openoffice.org/wiki/User_Experience/OpenOffice.org_User_Feedback_Program


Strings used

$PRODUCTNAME Improvement Program

Help Optimize the Quality of $PRODUCTNAME

We invite you to join our $PRODUCTNAME Improvement Program
to help optimize the quality of $PRODUCTNAME.

If you are willing to participate, we will collect anonymous statistics about how
you use OpenOffice.org. The data is used to identify usage patterns.

The $PRODUCTNAME Improvement Program will not collect any personal
data, or document content.

Yes, I am willing to participate in the $PRODUCTNAME Improvement Program

No, I do not wish to participate

Get more information about the $PRODUCTNAME Improvement Program

Tools Options Dialog

Usage option.png

Strings used

Improvement Program

Tracked data
Number of reports send:

Number of tracked actions:

Show Data

Disabling the Logging of Data

The org.OpenOffice.Office.Logging.OOoImprovement.EnablingAllowed configuration entry stored in the Logging.xcu allows administrators to switch the logging of data globally OFF. The boolean value needs to be set from true to false.

Usage Data Collected

The collected data is stored in a human readable CSV File at a location set in /org.openoffice.Office.Logging.UiEventslogger.LogPath (File: Logging.xcu)

  • The data will get packed in a zip-file before upload.
  • When the data was packed successfully, the uncompressed CSV-File is

deleted to save disc space. If the upload attempt fails, only the zipped file will be kept for retries.

What data is IS being collected

The following types of data are collected:

  • Tool bar Buttons
    • Including Add-Ons
  • Menu Items
    • Including Add-Ons
  • Context Menu Items
  • Fonts applied by using the menu
  • Font sizes applied by using the menu
  • Buttons, like OK, Cancel, etc.
  • Document - , Paragraph language applied by using the menu or status bar
  • Each item call provides a:
    • Time stamp
    • An information from which module the item has been called

What data is NOT being collected

  • User names and passwords
  • Any type of document content
  • Paths, filenames
  • User's source code

Example Log

~ 150 kByte uncompressed / 20 kBytes compressed in 30 min. while creating a short document (this is a bit outdated)

event no,thread,timestamp,eventtype,origin,uno url,parent id,window type,id,method,parameter
1,1,2008-06-11T10:58:05.85,vcl,,,40368,326,.HelpId:StartCenter:WriterButton,Click,
2,1,2008-06-11T10:58:05.85,dispatch,unknown origin,private:factory/swriter,,,,,
3,1,2008-06-11T10:58:07.88,dispatch,unknown origin,.uno:close,,,,,
4,1,2008-06-11T10:58:16.59,vcl,,,.HelpId:textobjectbar,369,0,TearOff,
5,1,2008-06-11T10:58:20.82,vcl,,,.HelpId:textobjectbar,340,33900,Select,2
6,1,2008-06-11T10:58:25.60,vcl,,,,0,52821,TypeKeys,1
7,1,2008-06-11T10:58:27.17,vcl,,,,0,52821,TypeKeys,1
8,1,2008-06-11T10:58:27.34,vcl,,,,0,52821,TypeKeys,1
9,1,2008-06-11T10:58:27.42,vcl,,,,0,52821,TypeKeys,1
...
2439,1,2008-06-11T11:25:08.52,vcl,,,,0,52821,TypeKeys,2
2440,1,2008-06-11T11:25:08.52,dispatch,unknown origin,.uno:SwBackspace,,,,,
2441,1,2008-06-11T11:25:08.66,vcl,,,,0,52821,TypeKeys,2
2442,1,2008-06-11T11:25:08.66,dispatch,unknown origin,.uno:SwBackspace,,,,,
2443,1,2008-06-11T11:25:10.17,vcl,,,,0,52821,TypeKeys,2
2444,1,2008-06-11T11:25:10.17,dispatch,unknown origin,.uno:SwBackspace,,,,,
2445,1,2008-06-11T11:25:12.31,vcl,,,,0,52821,TypeKeys,2
2446,1,2008-06-11T11:25:12.31,dispatch,unknown origin,.uno:GoDown,,,,,
2447,1,2008-06-11T11:25:17.47,dispatch,MenuBarManager,.uno:SaveAs,,,,,
2448,1,2008-06-11T11:25:26.63,dispatch,unknown origin,vnd.sun.star.help://swriter/33368?Language=en-US&System=UNIX#bm_id3159242,,,,,
2449,1,2008-06-11T11:25:33.31,vcl,,,,0,52821,TypeKeys,1
2450,1,2008-06-11T11:25:33.63,vcl,,,,0,52821,TypeKeys,1
2451,1,2008-06-11T11:25:34.00,vcl,,,,0,52821,TypeKeys,1
2452,1,2008-06-11T11:25:34.29,vcl,,,,0,52821,TypeKeys,1

Abbreviations

origin app

The "origin app" field in a logevent is abbreviated to keep the logs short.

App Abbrevation
com.sun.star.text.TextDocument W
com.sun.star.sheet.SpreadsheetDocument C
com.sun.star.presentation.PresentationDocument I
com.sun.star.drawing.DrawingDocument D

see source


origin widget

The "origin widget" field in a logevent is abbreviated to keep the logs short.

Widget Abbrevation
ButtonToolbarController 0
ComplexToolbarController 1
ControlMenuController 2
FontMenuController 3
FontSizeMenuController 4
FooterMenuController 5
GenericToolbarController 6
HeaderMenuController 7
LanguageSelectionMenuController 8
LangSelectionStatusbarController 9
MacrosMenuController 10
MenuBarManager 11
NewMenuController 12
ObjectMenuController 13
RecentFilesMenuController 14
ToolbarsMenuController 15
SfxToolBoxControl 16
SfxAsyncExec 17
AcceleratorExecute 18

see source

Meta Data

The following Meta Data will be transferred:

  • Office Version
  • Build ID
  • Office Locale
  • Platform (Windows XP, Windows Vista, Linux + Desktop Info, Mac, Solaris + Desktop Info)
  • First time sender (used to count total number of participant)
  • Report number

Flags and Meta Data for QA Usage

The following Meta Data will be transferred:

  • Sent for testing purposes

The test data used is the same as the Metadata provided by the ReportMail.

Transferring Data

  • The data will be transfered by using SOAP over HTTP
  • The data will be transmitted:
    • 30 seconds after startup, compressed (ZIP-format)
    • OpenOffice.org sends one send request per tracked session
  • If sending of usage data was not successful the data collecting feature retries sending the data on each start up of OOo again. If sending was no success after 25 attempts the data collecting feature disables it selves. The tracked data will be deleted.

Storing Data

The data will be stored on client-side (Office itself) and on server-side.

Storing Data Office

Data will be stored under: file://($user)/temp/Feedback (see http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Predefined_Variables)

Storing Data server side

The sent data via SOAP will be received by an OpenOffice.org server and stored in an OpenOffice.org version-related database. So each OpenOffice.org version will have an own database for the user feedback. The collected data will be available for data-mining later. Currently we are in a draft modus.

To guarantee user privacy we won't collect any IP-addresses or customer data. The report-data has no personal data inside.

Implementation Details

Office Configuration Entries

Core

  • org.OpenOffice.Office.Logging.OOoImprovement.LogPath (string)
  • org.OpenOffice.Office.Logging.OOoImprovement.IdleTimeout (int)
  • org.OpenOffice.Office.Logging.OOoImprovement.EnablingAllowed (boolean)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.OfficeStartCountdown (int)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.InvitationAccepted (boolean)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.ShowedInvitation (boolean)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.DeliveredPrebundled (boolean)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.UploadedReports (int)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.LoggedEvents (int)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Counters.FailedAttempts (int)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.SoapUrl (string)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.SoapIdAdditions (string)
  • org.OpenOffice.Ofiice.OOoImprovement.Settings.Upload.ReporterEmail (string)

UNO Services

com.sun.star.oooimprovement.Core (com.sun.star.comp.extensions.oooimprovecore.Core)

  • property: readonly bool UiEventsLoggerEnabled

Is true, if the logger is enabled.

  • property: readonly long SessionLogEventCount

The number of events logged in the current Office session (since start).

  • method: inviteUser()

Present the user with the invitation to take part in usage tracking.

com.sun.star.oooimprovement.CoreController (com.sun.star.comp.extensions.oooimprovement.CoreController)

  • method: bool enablingEventsLoggerAllowed(short Version)

The Eventlogger will only enable itself when this method returns true. The method checks the configuration keys in org.OpenOffice.Ofiice.OOoImprovement.Settings.Participation.

  • method: bool showBuiltinOptionsPage(short Version)

If this returns true, the usage tracking options and statistics show up in Tools->Options.

com.sun.star.logging.CsvFormatter (com.sun.star.comp.extensions.CsvFormatter)

This service allows formatting logs with the com.sun.star.logging-framework in CSV-Format.

Packages

The code/configuration for the user feedback program can be found in the following modules:

  • module officecfg for configuration keys
  • module svx for configuration dialogs
  • module comphelper for the eventlogger
  • module framework for the dispatch-event hooks
  • modules tools/automation for VCL-event hooks
  • module extensions for:
    • liboooimprovecore (packed in ooobasis*-core01-*.rpm on unix)
      • the UNO-API (com.sun.star.oooimprovement.Core) to the eventlogger
    • liboooimprovement (packed in ooobasis*-core03-*.rpm on unix)
      • the uploading/invitation implementation
      • the UNO-API to the uploading/invitation implementation (com.sun.star.oooimprovement.CoreController)
    • FOR SUN-BUILDS ONLY (BUILD_SPECIAL): Jobs.xcu needed to enable the user feedback program ( packed in ooobasis*-oooimprovement-*.rpm on unix)

The code was introduced with the following cws: logger2, oooimprovementcorefixes, oooimprovement2.

Jobs

Triggered by onFirstVisibleTask:

  • 30 seconds after startup an asynchronous job compresses and uploads data.
  • on the second start the invitation to the User Feedback Program gets displayed.

Filenames

  • $LOGPATH/Current.csv (created by core)
  • $LOGPATH/OOoImprove-ISOTIMESTAMP.csv (created by core)
  • $LOGPATH/OOoImprove-ISOTIMESTAMP.zip (created by extension)
  • OOoImprovement.oxt (contains liboooimprovementXX.xxx) (now part of OOo)
  • liboooimprovecoreXX.xxx

Project Bugs and Enhancements

Query for Bugs and Features

References

Status Meetings

Presentations

Personal tools