Transcript
Page 1: The dashboarding problem

The Dashboarding

Problem

Page 2: The dashboarding problem

Analytics team at Wikimedia Foundation

Page 3: The dashboarding problem

Easily VisualizeEditor Engagement

for all Wikimedia projects

Goal:

Page 4: The dashboarding problem

ExploreDashboardingTechnologies

Side Goal:

Page 5: The dashboarding problem

Date project pages created20140101 arwiki 5020140102 arwiki 40…

20140101 dewiki 10020140102 dewiki 200

Page 6: The dashboarding problem

Problem #1

Page 7: The dashboarding problem

Problem #1

Access to Data

Page 8: The dashboarding problem

Easily VisualizeEditor Engagement

for all Wikimedia projects

Everyone should have access!

Page 9: The dashboarding problem

Problem #1

Public Access to Data

Page 10: The dashboarding problem

Problem #2

Visualization

Page 11: The dashboarding problem
Page 12: The dashboarding problem
Page 13: The dashboarding problem

Visualization is an easier problem than data access

Page 14: The dashboarding problem
Page 15: The dashboarding problem
Page 16: The dashboarding problem
Page 17: The dashboarding problem
Page 18: The dashboarding problem

Problem #3

Page 19: The dashboarding problem

Problem #3

InformationArchitecture

Page 20: The dashboarding problem

How do you explore data for more than 800

projects?

Page 21: The dashboarding problem
Page 23: The dashboarding problem
Page 24: The dashboarding problem

#1 Access to Data

#2 Visualization#3 Information

Architecture

Page 25: The dashboarding problem

#1 Access to Data

#3 InformationArchitecture

engineering

#2 Visualization

design

Page 26: The dashboarding problem

Design knows best

#3 InformationArchitecture

Page 28: The dashboarding problem

#1 Access to Data

Page 29: The dashboarding problem

Tech Decision: Make all data available via HTTP

Page 31: The dashboarding problem

Data is available in JSON format

Page 32: The dashboarding problem

{ "result": { "Sum": { "newly_registered": { "2014-08-26 00:00:00": 364.0, "2014-08-24 00:00:00": 331.0, "2014-08-21 00:00:00": 382.0, "2014-08-30 00:00:00": 383.0, "2014-09-25 00:00:00": 372.0, "2014-08-22 00:00:00": 367.0, "2014-09-24 00:00:00": 410.0, "2014-09-06 00:00:00": 370.0, "2014-09-09 00:00:00": 370.0, "2014-09-27 00:00:00": 321.0, "2014-09-05 00:00:00": 317.0 } } }, "parameters": { "Cohort": "arwiki", "Created On": "2014-09-13 00:00:00", "Metric_end_date": "2014-09-13 00:00:00", "Metric_start_date": "2014-09-12 00:00:00", "Cohort Size": 0, "Metric": "NewlyRegistered" }}

Includes metadata

Page 33: The dashboarding problem

Data is available to everyone.

Page 34: The dashboarding problem

Why not?...Server-less

Page 35: The dashboarding problem

Why not?...Server-lessWhat is the middle tier for anyways?

Page 36: The dashboarding problem

Server-less

Decouples visualization piece from data gathering piece

No authentication needed

Page 37: The dashboarding problem
Page 38: The dashboarding problem

We are server-less, we need to store the bootstrap state of the dashboard somewhere

Page 39: The dashboarding problem

{ "defaultProjects": [ "enwiki", "eswiki", "dewiki", "frwiki", "ruwiki", "jawiki", "itwiki" ], "defaultMetrics": [ "RollingActiveEditor", "NewlyRegistered" ]}

https://metrics.wmflabs.org/static/public/dash/

Page 40: The dashboarding problem

Any other data store.Yours?

Any other data store.Yours?

Page 41: The dashboarding problem

Technology Stack

Page 42: The dashboarding problem

Package ManagerDependency LoadingData Binding LibraryDOM manipulation and ajaxTesting

Must Haves:

Page 43: The dashboarding problem

Technology StackMicro libraries: “each library does 1 thing well”

Page 44: The dashboarding problem

> Bower install

Page 45: The dashboarding problem
Page 47: The dashboarding problem
Page 48: The dashboarding problem

The Of Knockout Components

Page 49: The dashboarding problem

Knockout is not Polymer(It’s a LOT better)

Page 50: The dashboarding problem

Reusable pieces

Page 51: The dashboarding problem
Page 52: The dashboarding problem

Show me the code….

Page 53: The dashboarding problem
Page 54: The dashboarding problem
Page 55: The dashboarding problem

Dashiki: a thin wrapper on top of OS technology + information architecture.We can use dashiki to build other dashboards.

Page 57: The dashboarding problem

Lessons:Server-less = Reduced complexityEasy(est) to deployCORSNo error log for nowBootstrap default stateKeep things simple. No authentication.

Page 58: The dashboarding problem

Questions?


Top Related