Slide 1

Slide 1 text

Bryan Van de Ven @bryvdv, @BokehPlots SciPy LA 2016 Bokeh Today https://speakerdeck.com/bryanv/bokeh-scipyla-2016

Slide 2

Slide 2 text

No JavaScript Bokeh? https://bokeh.pydata.org/en/latest Interactive visualization, widgets, and tools For the browser, with or without a server Versatile and high-level graphics Streaming, dynamic, large data

Slide 3

Slide 3 text

No JavaScript No JavaScript Bokeh? https://bokeh.pydata.org/en/latest Interactive visualization, widgets, and tools For the browser, with or without a server Versatile and high-level graphics Streaming, dynamic, large data

Slide 4

Slide 4 text

Status

Slide 5

Slide 5 text

What’s new?

Slide 6

Slide 6 text

New Annotations • spans, bars, polys, hover policies What’s new?

Slide 7

Slide 7 text

New Annotations • spans, bars, polys, hover policies What’s new? Custom User Extensions

Slide 8

Slide 8 text

New Annotations • spans, bars, polys, hover policies What’s new? Custom User Extensions Code cleanup, Expanded CI testing

Slide 9

Slide 9 text

New Annotations • spans, bars, polys, hover policies WebGL for lines and markers What’s new? Custom User Extensions Code cleanup, Expanded CI testing

Slide 10

Slide 10 text

New Annotations • spans, bars, polys, hover policies WebGL for lines and markers What’s new? GeoJSON and Tile Renderers Custom User Extensions Code cleanup, Expanded CI testing

Slide 11

Slide 11 text

Stabilized and Expanded Charts API New Annotations • spans, bars, polys, hover policies WebGL for lines and markers What’s new? GeoJSON and Tile Renderers Custom User Extensions Code cleanup, Expanded CI testing

Slide 12

Slide 12 text

Stabilized and Expanded Charts API New Annotations • spans, bars, polys, hover policies WebGL for lines and markers What’s new? Python→JS compilation for CustomJS callbacks GeoJSON and Tile Renderers Custom User Extensions Code cleanup, Expanded CI testing

Slide 13

Slide 13 text

New Bokeh Server What’s new?

Slide 14

Slide 14 text

New Bokeh Server What’s new? • More robust and performant • tornado and websocket protocol

Slide 15

Slide 15 text

New Bokeh Server What’s new? • More robust and performant • tornado and websocket protocol • Simpler to use and deploy • simple python scripts, no special classes

Slide 16

Slide 16 text

New Bokeh Server What’s new? • More robust and performant • tornado and websocket protocol • Simpler to use and deploy • simple python scripts, no special classes • Extensive User Guide Documentation

Slide 17

Slide 17 text

New Bokeh Server What’s new? • More robust and performant • tornado and websocket protocol • Simpler to use and deploy • simple python scripts, no special classes • Extensive User Guide Documentation • Hosted examples at https://demo.bokehplots.com

Slide 18

Slide 18 text

Data Shader What’s new?

Slide 19

Slide 19 text

Data Shader What’s new? • New project in the Bokeh GH org • https://github.com/bokeh/datashader

Slide 20

Slide 20 text

Data Shader What’s new? • New project in the Bokeh GH org • https://github.com/bokeh/datashader • Visualize millions and billions of points • simple python scripts, no special classes

Slide 21

Slide 21 text

Data Shader What’s new? • New project in the Bokeh GH org • https://github.com/bokeh/datashader • Visualize millions and billions of points • simple python scripts, no special classes • Efficient visual queries

Slide 22

Slide 22 text

Data Shader What’s new? • New project in the Bokeh GH org • https://github.com/bokeh/datashader • Visualize millions and billions of points • simple python scripts, no special classes • Efficient visual queries • Webinar: https://go.continuum.io/datashader

Slide 23

Slide 23 text

2014 Timeline

Slide 24

Slide 24 text

2015 Timeline

Slide 25

Slide 25 text

2016 Timeline

Slide 26

Slide 26 text

Community Makes the Dream Work Damian Luke Bryan Fabio Mateusz Havoc Almar Peter Maggie Sarah Brendan Kevin

Slide 27

Slide 27 text

Community Makes the Dream Work New faces too: Damian Luke Bryan Fabio Mateusz Havoc Almar Peter Maggie Sarah Brendan Kevin

Slide 28

Slide 28 text

Community Makes the Dream Work New faces too: Damian Luke Bryan Fabio Mateusz Havoc Almar Peter Maggie Sarah Brendan Kevin !!!

Slide 29

Slide 29 text

Community Makes the Dream Work New faces too: Damian Luke Bryan Fabio Mateusz Havoc Almar Peter Maggie Sarah Brendan Kevin !!! Special Thanks: @merqurio, @justacec, @clairetang6, @dennisobrien

Slide 30

Slide 30 text

Community Makes the Dream Work New faces too: Damian Luke Bryan Fabio Mateusz Havoc Almar Peter Maggie Sarah Brendan Kevin !!! Special Thanks: @merqurio, @justacec, @clairetang6, @dennisobrien

Slide 31

Slide 31 text

Examples

Slide 32

Slide 32 text

Simple apps for data science Server

Slide 33

Slide 33 text

Concentrate on your work Server

Slide 34

Slide 34 text

Concentrate on your work Completely written in Python, no HTML or CSS or “webapp” coding Server

Slide 35

Slide 35 text

Concentrate on your work Completely written in Python, no HTML or CSS or “webapp” coding Server Simple python scripts, no special classes of frameworks

Slide 36

Slide 36 text

Concentrate on your work Completely written in Python, no HTML or CSS or “webapp” coding Server Simple python scripts, no special classes of frameworks Useful for exploratory analysis or sharing and deploying

Slide 37

Slide 37 text

Concentrate on your work Completely written in Python, no HTML or CSS or “webapp” coding Utilizes only out-of the box features of Bokeh 0.11.1 Server Simple python scripts, no special classes of frameworks Useful for exploratory analysis or sharing and deploying

Slide 38

Slide 38 text

Streaming Time Series https://youtu.be/NUrhOj3DzYs Streaming

Slide 39

Slide 39 text

Streaming Time Series https://youtu.be/NUrhOj3DzYs Streaming

Slide 40

Slide 40 text

Efficient data, Efficient code Streaming

Slide 41

Slide 41 text

Efficient data, Efficient code Plotting commands, application code, simulation, everything < 100 LOC Streaming

Slide 42

Slide 42 text

Efficient data, Efficient code Plotting commands, application code, simulation, everything < 100 LOC Performance enhancements (only send latest data points) Streaming

Slide 43

Slide 43 text

Efficient data, Efficient code Plotting commands, application code, simulation, everything < 100 LOC Performance enhancements (only send latest data points) Further features and improvements planned Streaming

Slide 44

Slide 44 text

front, Python in the back Customize

Slide 45

Slide 45 text

front, Python in the back Customize

Slide 46

Slide 46 text

Scratch Your Own Itch Customize

Slide 47

Slide 47 text

Scratch Your Own Itch Customize Extend any aspect of Bokeh with custom models

Slide 48

Slide 48 text

Scratch Your Own Itch Customize Extend any aspect of Bokeh with custom models Lowers the bar for trying out new ideas

Slide 49

Slide 49 text

Scratch Your Own Itch Customize Extend any aspect of Bokeh with custom models Users don’t have to wait on core team schedule Lowers the bar for trying out new ideas

Slide 50

Slide 50 text

Scratch Your Own Itch Customize Extend any aspect of Bokeh with custom models Users don’t have to wait on core team schedule The future: Atom-style user extension repository Lowers the bar for trying out new ideas

Slide 51

Slide 51 text

“Billions and billions…” Datashader

Slide 52

Slide 52 text

Pipelines for visual queries Datashader

Slide 53

Slide 53 text

Pipelines for visual queries Datashader Bokeh passes data directly into the browser, where users can interact with it

Slide 54

Slide 54 text

Pipelines for visual queries Datashader Bokeh passes data directly into the browser, where users can interact with it For very large datasets (hundreds of millions or billions of points), passing all the data into the browser is not feasible

Slide 55

Slide 55 text

Pipelines for visual queries Datashader Bokeh passes data directly into the browser, where users can interact with it Datashader renders into an off-screen buffer and can handle arbitrarily large datasets without downsampling For very large datasets (hundreds of millions or billions of points), passing all the data into the browser is not feasible

Slide 56

Slide 56 text

Pipelines for visual queries Datashader Bokeh passes data directly into the browser, where users can interact with it Datashader renders into an off-screen buffer and can handle arbitrarily large datasets without downsampling Powered by Dask and Numba For very large datasets (hundreds of millions or billions of points), passing all the data into the browser is not feasible

Slide 57

Slide 57 text

Speaking of Dask Dask http://dask.pydata.org/en/latest/

Slide 58

Slide 58 text

Speaking of Dask Dask http://dask.pydata.org/en/latest/

Slide 59

Slide 59 text

Speaking of Dask Dask http://dask.pydata.org/en/latest/ Comes with a Bokeh app for monitoring performance of distributed array tasks

Slide 60

Slide 60 text

Speaking of Dask Dask http://dask.pydata.org/en/latest/ Comes with a Bokeh app for monitoring performance of distributed array tasks CPU and memory and communications use across the cluster over time

Slide 61

Slide 61 text

Speaking of Dask Dask http://dask.pydata.org/en/latest/ Comes with a Bokeh app for monitoring performance of distributed array tasks “Invaluable for understanding and optimizing distributed computing performance.” CPU and memory and communications use across the cluster over time

Slide 62

Slide 62 text

Speaking of Dask Dask http://dask.pydata.org/en/latest/ Comes with a Bokeh app for monitoring performance of distributed array tasks “Invaluable for understanding and optimizing distributed computing performance.” “It's not something for which I need to go out and find a web developer to help me with.” CPU and memory and communications use across the cluster over time

Slide 63

Slide 63 text

Not just for Python RBokeh http://hafen.github.io/rbokeh Plays well with R ecosystem: HTMLwidget, RMarkdown…

Slide 64

Slide 64 text

Upcoming

Slide 65

Slide 65 text

0.12

Slide 66

Slide 66 text

• Arrows, Labels, Colorbars 0.12

Slide 67

Slide 67 text

• Arrows, Labels, Colorbars • Legend and Hover improvements 0.12

Slide 68

Slide 68 text

• Arrows, Labels, Colorbars • Legend and Hover improvements • New high-level Chord chart 0.12

Slide 69

Slide 69 text

• Arrows, Labels, Colorbars • Legend and Hover improvements • New high-level Chord chart • New JS / TypeScript API 0.12

Slide 70

Slide 70 text

Real Soon Now BokehJS on its own

Slide 71

Slide 71 text

Real Soon Now BokehJS on its own Author in TypeScript or JavaScript Direct port of bokeh.plotting Available on NPM New high-level BokehJS Charts API

Slide 72

Slide 72 text

• Arrows, Labels, Colorbars • Legend and Hover improvements • New high-level Chord chart • New JS / TypeScript API • Foundational layout improvements • Custom server templates 0.12

Slide 73

Slide 73 text

• Computed data source columns • Arrows, Labels, Colorbars • Legend and Hover improvements • New high-level Chord chart • New JS / TypeScript API • Foundational layout improvements • Custom server templates 0.12

Slide 74

Slide 74 text

• Computed data source columns • Lots of bug fixes • Arrows, Labels, Colorbars • Legend and Hover improvements • New high-level Chord chart • New JS / TypeScript API • Foundational layout improvements • Custom server templates 0.12

Slide 75

Slide 75 text

• Computed data source columns • Lots of bug fixes • and then… • Arrows, Labels, Colorbars • Legend and Hover improvements • New high-level Chord chart • New JS / TypeScript API • Foundational layout improvements • Custom server templates 0.12

Slide 76

Slide 76 text

1.0

Slide 77

Slide 77 text

• API guarantees (Semantic Versioning) 1.0

Slide 78

Slide 78 text

• API guarantees (Semantic Versioning) • Visual / Design pass 1.0

Slide 79

Slide 79 text

• API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance 1.0

Slide 80

Slide 80 text

• API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance • July 2016 target 1.0

Slide 81

Slide 81 text

1.0 (and beyond) • API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance • July 2016 target

Slide 82

Slide 82 text

1.0 (and beyond) • API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance • July 2016 target • NumFOCUS fiscal sponshorship

Slide 83

Slide 83 text

1.0 (and beyond) • API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance • July 2016 target • NumFOCUS fiscal sponshorship • LaTeX labels, Networks/Graphs

Slide 84

Slide 84 text

1.0 (and beyond) • API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance • July 2016 target • NumFOCUS fiscal sponshorship • LaTeX labels, Networks/Graphs • Scriptable animations and transitions

Slide 85

Slide 85 text

1.0 (and beyond) • API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance • July 2016 target • NumFOCUS fiscal sponshorship • LaTeX labels, Networks/Graphs • Scriptable animations and transitions • Bokeh “develop” mode

Slide 86

Slide 86 text

1.0 (and beyond) • API guarantees (Semantic Versioning) • Visual / Design pass • BEP for project governance • July 2016 target • NumFOCUS fiscal sponshorship • LaTeX labels, Networks/Graphs • Scriptable animations and transitions • Bokeh “develop” mode • SVG output

Slide 87

Slide 87 text

Call To Action Install Bokeh and Data Shader and provide feedback • BSD license for everything (JS, Python, server) • https://github.com/bokeh/bokeh • https://github.com/bokeh/datashader

Slide 88

Slide 88 text

No content