Firefox/Activity Stream: Difference between revisions

(→‎Install: modernizing page)
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Current Progress Report=
https://wiki.mozilla.org/Firefox/Activity_Stream/Status/16-May-2017
=Overview=
=Overview=
Activity Stream for Firefox is a collection of all the things you do in the browser that you care about displayed in a rich and meaningful way. We plan to show rich content with images from recent pages, screen shots, downloads, closing sessions, notifications, and  improve your results in the awesome bar.  Eventually we hope to be the central feed of the things you care about.
Activity Stream for Firefox is a collection of all the things you do in the browser that you care about displayed in a rich and meaningful way. We plan to show rich content with images from recent pages, screen shots, downloads, closing sessions, notifications, and  improve your results in the awesome bar.  Eventually we hope to be the central feed of the things you care about.


[[File:Activity-stream-2016-03-19.png|800px|frameless]]
[[File:ActivityStream.png|800px|frameless]]




===Key Documents===
===Key Documents===
* What is Context Graph: https://wiki.mozilla.org/Context_Graph
* Code: https://github.com/mozilla/activity-stream
* Code: https://github.com/mozilla/activity-stream
* Issues: https://github.com/mozilla/activity-stream/issues
* Issues: https://github.com/mozilla/activity-stream/issues
===Trello Boards===
These Trello boards paint a very accurate picture of the various Activity Stream features and project progress:
* Product/UX Trello Board (Desktop): https://trello.com/b/KX3hV8XS/activity-stream
* Product/UX Trello Board (Desktop): https://trello.com/b/KX3hV8XS/activity-stream
* Product/UX Trello Board (iOS MVP): https://trello.com/b/IDwOxfWP/activity-stream-mvp-ios
* Product/UX Trello Board (iOS MVP): https://trello.com/b/IDwOxfWP/activity-stream-mvp-ios
Line 29: Line 34:
and change it's value to '''True'''
and change it's value to '''True'''


=====Developer Release=====
===Developer Release===


The developer release is updated each time code is committed to master in GitHub. This version is used to experiment and validate the core functionality of the product before integrating it into Firefox.  Using this release is to look into the future of the Activity Stream product, and how it will look in future Firefox releases.
The developer release is updated each time code is committed to master in GitHub. This version is used to experiment and validate the core functionality of the product before integrating it into Firefox.  Use this release to look into the future of the product, and to try out new Activity Stream experimental and 'in-development' features.


https://moz-activity-streams-dev.s3.amazonaws.com/dist/latest.html
https://moz-activity-streams-dev.s3.amazonaws.com/dist/latest.html
Line 51: Line 56:


==Product Plan==
==Product Plan==
* Q3: Consistent cross platform experience
* Test Pilot Graduation, MVP complete Q2 2017
* Q3: Trending and recommended items (powered by Pocket)
* Pref'd on in Firefox Nightly Q2 2017
* Q3: Easier access to the best pages from history
* Activity Stream completely ported to Firefox as a system add-on Q3 2017, ships pref'd off in Firefox 56
* Q3: Cross platform validation
* Activity Stream to ship as default about:newtab and about:home in Firefox 57 Q4 2017
* Q4: Begin landing code in Firefox across platforms


==Success==
==Success==
Line 62: Line 66:
* Activity Stream in the hands of all our users
* Activity Stream in the hands of all our users
* Users have easy access to their favorite things in Firefox and therefore spend more time using it
* Users have easy access to their favorite things in Firefox and therefore spend more time using it
==Schedule==
[[File:AS schedule.png|1000px|frameless]]


===Product Milestones===
===Product Milestones===
Line 78: Line 79:
| 3a|| WIP || Mobile MVP || Android and iOS browsers have basic functionality of Activity Stream enabled. || Stefan
| 3a|| WIP || Mobile MVP || Android and iOS browsers have basic functionality of Activity Stream enabled. || Stefan
|-
|-
| 3b || WIP || Desktop Engagement || Desktop has demonstrated user value in increasing median activity stream interactions by weekly cohort. || Tim
| 3b || DONE || Desktop Engagement || Desktop has demonstrated user value in increasing median activity stream interactions by weekly cohort. || Tim
|-
|-
| 4 || || Enabling for all users ||  Need to plan, define, and engineer activity stream to release to all users. || Stefan/Tim
| 4 || WIP || Enabling for all users ||  Activity Stream Desktop is landing in Firefox 57 || Stefan/Tim
|-
|-
| 5 ||  || Product focused features ||  Full stack teams to deliver coherent features across all clients driving engagement in Firefox || Team
| 5 ||  || Product focused features ||  Full stack teams to deliver coherent features across all clients driving engagement in Firefox || Team
Line 86: Line 87:


= Data & Metrics =
= Data & Metrics =
https://sql.telemetry.mozilla.org/dashboard/activity-stream-executive-summary - requires login
https://sql.telemetry.mozilla.org/dashboard/activity-stream-metrics-summary - requires login
 
= Engineering =
 
Activity Stream [status: green]
 
Highlights
* v1.1.3 deployed Sept 1.
* Issue [https://github.com/mozilla/activity-stream/issues/1145 #1145] initially a chemSpill, but downgraded as root cause is quickly enable and disable of addon could result in crash.  This potentially only happens on updates of large profiles.  We are using Sentry to monitor it's frequency.
* Risks:
** Improve content relevance through scoring system - we're waiting on final review from PM on going live with an experiement
** Metadata parser - new server instances needs Sec/Ops review
 
Last Sprint
* [Done] - Share Button with Social API [https://github.com/mozilla/activity-stream/issues/892 #892]
* [Done] - Metadata service internal testing and rating system [https://github.com/mozilla/page-metadata-service/issues/56 #56]
* [Done] - Improve highlight UI and include synced tabs [https://github.com/mozilla/activity-stream/issues/1007 #1007]
* [Done] - Scoring/Ranking highlights landed but pref'd off [https://github.com/mozilla/activity-stream/commit/0cb496c commit]
* [Done] - bug fixes (youtube bgcolor), chores, and performance work
 
Current Sprint:
* Local page parsing internal testing
* Metadata service experiment [https://github.com/mozilla/activity-stream/issues/1084 #1084]
* Scoring highlights experiment [https://github.com/mozilla/activity-stream/issues/1085 #1085]
* Add Sentry support [https://github.com/mozilla/activity-stream/issues/747 #747]
 
Changelog: https://github.com/mozilla/activity-stream/blob/master/CHANGELOG.md
 
Mobile sprint tasks:
 
https://wiki.mozilla.org/Firefox/Activity_Stream/Mobile_Sprint_Planning
 
'''[[Firefox/Activity_Stream_Updates | Past Updates]]'''
 
== Milestones ==
Desktop:
 
https://github.com/mozilla/activity-stream/milestones
 
Current mobile team work:
 
https://wiki.mozilla.org/Firefox/Activity_Stream/Mobile_Sprint_Planning
 
== Cross Team Projects ==
 
==== Page MetaData Parsing ====
Problem: embedly proxy server has limitations in performance, client-side intelligence in display heuristics, and has a high cost.
 
Questions and Goals:
* How do we land and prioritize the work to use Local page meta data parsing?
* What dependencies and risks are there?
** Performance could hang the main thread for ~100ms per page till we get Loci/worker queue
** Quality of the parsing results and image identification could be lower than embedly
** Advanced storage of page indices is needed to improve scoring, de-duplication, and intelligence of displayed content.
 
=====Working Plan=====
Goals:
* Develop infrastructure to refine rulesets for the Fathom library for Activity Stream
* Experiment, debug, and evaluate client performance/stability of local parsing.
 
Approach:
* [server] test rulesets and resolve embedly licensing cost.
* [server] work on testing and improving rulesets (with improved feedback from client thumbs up/down)
* [client] Land local parsing pref'd off to evaluate performance for internal testing
* [client] Improve feedback on good/bad highlights to help develop analytics in understand good/bad rulesets.
 
Task right now:
* <strike>[Jared] email list with instructions on building addon that uses a dev instance of fathom</strike>
* More people test this via setting embedly server endpoint via about:config
* [K8] land PR pref'd off to test Fathom library/rules locally to eval performance and stability
 
==== Rank/Scoring heuristics for content relevance ====
Problem: current query of places.db has limitations in flexibility and inclusion of other signals.
 
Solution: How can we build system that could help us learn programmatically what types of content is more engaging for users measured by click-through-rate (CTR)?
 
Questions and Goals:
* How do we land a scoring system
* How can we maintain low latency of computation?
 
==== Signals ====
'''Problem''': the heuristics for ranking page value, frecency or scoring, could improve by adding more signals from user activity
 
'''Solution''': Let's experiment with a basic set of new signals that are already available (e.g. share events, etc...) and add them to a scoring system to test how we can improve relevance to users measured by CTR.
 
'''Hypothesis''':  If we deploy a scoring/ranking system and feed it more signals making score more accurate, we will achieve higher interactions on page.
 
'''Work to do this:
'''* Andrei and team working on MVP of scoring and ranking system in Activity Stream as an experiment which can be preffed on/off.
 
* Nan/Olivier working on storage to store signals.
 
Two groups of signals here:
 
* A: What user signals can we record now and feed into Activity Stream's scoring system?
 
* B: What user signals can we enable in gecko and feed into Activity Stream's scoring system for the long term or understanding what signals matter?  We could consider uplifting behind a pref, where AS can flip the pref.
 
'''Actions''':
* Identify what signals are in A vs B - @Brendan can you identify this and update the sheet?
* How do we get A into scoring system or the current query system.
* Do we want to do work in gecko now to enable B signals? If yes, who can do this?
 
==== Performance ====
Problem: If we parse pages locally, we need to preserve performance which could be impacted if we parse many pages.  Storing parsed page meta data would also improve reduce duplicate computations on existing pages.
 
Solution:
* Loci, a worker queue that could parse pages without blocking the main thread.
* Advanced storage to store page meta data for fast queries by score.


=Team - RACI =
=Team - RACI =
23

edits