Interactive web app: Slider + plot + button

Hi,

I am new to Bokeh. Congrats on this fantastic project!

I am hoping to create an extremely simple web app that will hopefully be the basis for something bigger later.

Initially, it would have:

  • A plot

  • A slider

  • A submit button

The plot would for example show sin(f*x), the slider would control/update the value f (the “frequency” of the signal the plot). The submit button would simply run server-side code in Python that would record the value in the slider to a text file.

Is this at all possible in Bokeh?

Thanks!

Josh

Hi Josh,

I’m also very new to Bokeh, however, there’s an example on this page: http://continuum.io/blog/bokeh-0.5 that sounds somewhat like what you’re talking about. Scroll down the page under the sub heading “Widgets”. It should be the middle one below the sub heading. I actually got that one to work today, but you have to install Bokeh server and have it running. If you’re using the Anaconda version of Python, just go to a command prompt and type in:

bokeh-server --backend=memory. Make sure you have the latest version of Bokeh by going to a command prompt and typing in “conda install -c http://conda.binstar.org/bokeh/channel/dev bokeh”.

I’m still very new to this but I wanted to give you a head start. The more advanced folks who are developing it now can give you more precise instructions.

Cheers,

Armen

···

On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein [email protected] wrote:

Hi,

I am new to Bokeh. Congrats on this fantastic project!

I am hoping to create an extremely simple web app that will hopefully be the basis for something bigger later.

Initially, it would have:

  • A plot
  • A slider
  • A submit button

The plot would for example show sin(f*x), the slider would control/update the value f (the “frequency” of the signal the plot). The submit button would simply run server-side code in Python that would record the value in the slider to a text file.

Is this at all possible in Bokeh?

Thanks!

Josh

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hello Josh,

Yes, this is indeed currently possible with Bokeh. In fact, you might find most, if not all, of the logic required is written in the taylor_server.py example, as Armen pointed out (thanks!)

Here’s what that looks like at the moment:

Inline image 1

You will probably have the most success if you install Bokeh from source (and with the --build-js flag; see Installation For Developers). As always, feedback is highly appreciated!

Regards,

Karan

···

On Mon, Aug 4, 2014 at 2:08 PM, Armen Alexanian [email protected] wrote:

Hi Josh,

I’m also very new to Bokeh, however, there’s an example on this page: http://continuum.io/blog/bokeh-0.5 that sounds somewhat like what you’re talking about. Scroll down the page under the sub heading “Widgets”. It should be the middle one below the sub heading. I actually got that one to work today, but you have to install Bokeh server and have it running. If you’re using the Anaconda version of Python, just go to a command prompt and type in:

bokeh-server --backend=memory. Make sure you have the latest version of Bokeh by going to a command prompt and typing in “conda install -c http://conda.binstar.org/bokeh/channel/dev bokeh”.

I’m still very new to this but I wanted to give you a head start. The more advanced folks who are developing it now can give you more precise instructions.

Cheers,

Armen

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein [email protected] wrote:

Hi,

I am new to Bokeh. Congrats on this fantastic project!

I am hoping to create an extremely simple web app that will hopefully be the basis for something bigger later.

Initially, it would have:

  • A plot
  • A slider
  • A submit button

The plot would for example show sin(f*x), the slider would control/update the value f (the “frequency” of the signal the plot). The submit button would simply run server-side code in Python that would record the value in the slider to a text file.

Is this at all possible in Bokeh?

Thanks!

Josh

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Just to add a little bit to Karan comment… as Armen has pointed out, you can install the devel release and the example will work without any need to build all the js. The taylor example was recently updated in master to be compatible with the new layout system… however the last devel release include the new system, so it has to work… :wink:
The simplest option is to use the released version of Bokeh 0.5.1, but using the old example living here: https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py

Hope it helps.

Damian

···

On Mon, Aug 4, 2014 at 4:30 PM, Karan Dodia [email protected] wrote:

Hello Josh,

Yes, this is indeed currently possible with Bokeh. In fact, you might find most, if not all, of the logic required is written in the taylor_server.py example, as Armen pointed out (thanks!)

Here’s what that looks like at the moment:

You will probably have the most success if you install Bokeh from source (and with the --build-js flag; see Installation For Developers). As always, feedback is highly appreciated!

Regards,

Karan

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

On Mon, Aug 4, 2014 at 2:08 PM, Armen Alexanian [email protected] wrote:

Hi Josh,

I’m also very new to Bokeh, however, there’s an example on this page: http://continuum.io/blog/bokeh-0.5 that sounds somewhat like what you’re talking about. Scroll down the page under the sub heading “Widgets”. It should be the middle one below the sub heading. I actually got that one to work today, but you have to install Bokeh server and have it running. If you’re using the Anaconda version of Python, just go to a command prompt and type in:

bokeh-server --backend=memory. Make sure you have the latest version of Bokeh by going to a command prompt and typing in “conda install -c http://conda.binstar.org/bokeh/channel/dev bokeh”.

I’m still very new to this but I wanted to give you a head start. The more advanced folks who are developing it now can give you more precise instructions.

Cheers,

Armen

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein [email protected] wrote:

Hi,

I am new to Bokeh. Congrats on this fantastic project!

I am hoping to create an extremely simple web app that will hopefully be the basis for something bigger later.

Initially, it would have:

  • A plot
  • A slider
  • A submit button

The plot would for example show sin(f*x), the slider would control/update the value f (the “frequency” of the signal the plot). The submit button would simply run server-side code in Python that would record the value in the slider to a text file.

Is this at all possible in Bokeh?

Thanks!

Josh

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Hi folks, I’m just starting to look at bokeh so apologies if this question is a touch naive, but is it possible / is there a good example of how to run the document update directly triggered by the event (i.e. is there a server-side event loop available), rather than using a timer?

Cheers,
Chris.

···

On Tuesday, 5 August 2014 06:53:31 UTC+10, Damian Avila wrote:

Just to add a little bit to Karan comment… as Armen has pointed out, you can install the devel release and the example will work without any need to build all the js. The taylor example was recently updated in master to be compatible with the new layout system… however the last devel release include the new system, so it has to work… :wink:
The simplest option is to use the released version of Bokeh 0.5.1, but using the old example living here: https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py

Hope it helps.

Damian

On Mon, Aug 4, 2014 at 4:30 PM, Karan Dodia [email protected] wrote:

Hello Josh,

Yes, this is indeed currently possible with Bokeh. In fact, you might find most, if not all, of the logic required is written in the taylor_server.py example, as Armen pointed out (thanks!)

Here’s what that looks like at the moment:

Inline image 1

You will probably have the most success if you install Bokeh from source (and with the --build-js flag; see Installation For Developers). As always, feedback is highly appreciated!

Regards,

Karan

On Mon, Aug 4, 2014 at 2:08 PM, Armen Alexanian [email protected] wrote:

Hi Josh,

I’m also very new to Bokeh, however, there’s an example on this page: http://continuum.io/blog/bokeh-0.5 that sounds somewhat like what you’re talking about. Scroll down the page under the sub heading “Widgets”. It should be the middle one below the sub heading. I actually got that one to work today, but you have to install Bokeh server and have it running. If you’re using the Anaconda version of Python, just go to a command prompt and type in:

bokeh-server --backend=memory. Make sure you have the latest version of Bokeh by going to a command prompt and typing in “conda install -c http://conda.binstar.org/bokeh/channel/dev bokeh”.

I’m still very new to this but I wanted to give you a head start. The more advanced folks who are developing it now can give you more precise instructions.

Cheers,

Armen

On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein [email protected] wrote:

Hi,

I am new to Bokeh. Congrats on this fantastic project!

I am hoping to create an extremely simple web app that will hopefully be the basis for something bigger later.

Initially, it would have:

  • A plot
  • A slider
  • A submit button

The plot would for example show sin(f*x), the slider would control/update the value f (the “frequency” of the signal the plot). The submit button would simply run server-side code in Python that would record the value in the slider to a text file.

Is this at all possible in Bokeh?

Thanks!

Josh

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

You received this message because you are subscribed to the Google Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

To post to this group, send email to [email protected].

To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

yes the bokeh server does have it's own event loop,

please see:

https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py

Unfortunately that is currently on a branch, but it will get merged to master soon

···

On Thu 07 Aug 2014 09:46:53 PM EDT, [email protected] wrote:

Hi folks, I'm just starting to look at bokeh so apologies if this
question is a touch naive, but is it possible / is there a good
example of how to run the document update directly triggered by the
event (i.e. is there a server-side event loop available), rather than
using a timer?

Cheers,
Chris.

On Tuesday, 5 August 2014 06:53:31 UTC+10, Damian Avila wrote:

    Just to add a little bit to Karan comment... as Armen has pointed
    out, you can install the devel release and the example will work
    without any need to build all the js. The taylor example was
    recently updated in master to be compatible with the new layout
    system... however the last devel release include the new system,
    so it has to work... :wink:
    The simplest option is to use the released version of Bokeh 0.5.1,
    but using the old example living here:
    https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py
    <https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py>

    Hope it helps.

    Damian

    On Mon, Aug 4, 2014 at 4:30 PM, Karan Dodia <[email protected] > <javascript:>> wrote:

        Hello Josh,

        Yes, this is indeed currently possible with Bokeh. In fact,
        you might find most, if not all, of the logic required is
        written in the taylor_server.py
        <https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py> example,
        as Armen pointed out (thanks!)

        Here's what that looks like at the moment:

        Inline image 1

        You will probably have the most success if you install Bokeh
        from source (and with the --build-js flag; see Installation
        For Developers
        <http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers>).
        As always, feedback is highly appreciated!

        Regards,

        Karan

        On Mon, Aug 4, 2014 at 2:08 PM, Armen Alexanian > <[email protected] <javascript:>> wrote:

            Hi Josh,

            I'm also very new to Bokeh, however, there's an example on
            this page: http://continuum.io/blog/bokeh-0.5
            <http://continuum.io/blog/bokeh-0.5> that sounds somewhat
            like what you're talking about. Scroll down the page
            under the sub heading "Widgets". It should be the middle
            one below the sub heading. I actually got that one to
            work today, but you have to install Bokeh server and have
            it running. If you're using the Anaconda version of
            Python, just go to a command prompt and type in:
            bokeh-server --backend=memory. Make sure you have the
            latest version of Bokeh by going to a command prompt and
            typing in "conda install -c
            http://conda.binstar.org/bokeh/channel/dev
            <http://conda.binstar.org/bokeh/channel/dev> bokeh".

            I'm still very new to this but I wanted to give you a head
            start. The more advanced folks who are developing it now
            can give you more precise instructions.

            Cheers,
            Armen

            On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein > <[email protected] <javascript:>> wrote:

                Hi,

                I am new to Bokeh. Congrats on this fantastic project!

                I am hoping to create an extremely simple web app that
                will hopefully be the basis for something bigger later.

                Initially, it would have:
                * A plot
                * A slider
                * A submit button

                The plot would for example show sin(f*x), the slider
                would control/update the value f (the "frequency" of
                the signal the plot). The submit button would simply
                run server-side code in Python that would record the
                value in the slider to a text file.

                Is this at all possible in Bokeh?

                Thanks!

                Josh

                --
                You received this message because you are subscribed
                to the Google Groups "Bokeh Discussion - Public" group.
                To unsubscribe from this group and stop receiving
                emails from it, send an email to
                [email protected] <javascript:>.
                To post to this group, send email to
                [email protected] <javascript:>.
                To view this discussion on the web visit
                https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com
                <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer>.
                For more options, visit
                https://groups.google.com/a/continuum.io/d/optout
                <https://groups.google.com/a/continuum.io/d/optout>.

            --
            You received this message because you are subscribed to
            the Google Groups "Bokeh Discussion - Public" group.
            To unsubscribe from this group and stop receiving emails
            from it, send an email to [email protected]
            <javascript:>.
            To post to this group, send email to [email protected]
            <javascript:>.
            To view this discussion on the web visit
            https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com
            <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer>.

            For more options, visit
            https://groups.google.com/a/continuum.io/d/optout
            <https://groups.google.com/a/continuum.io/d/optout>.

        --
        You received this message because you are subscribed to the
        Google Groups "Bokeh Discussion - Public" group.
        To unsubscribe from this group and stop receiving emails from
        it, send an email to [email protected] <javascript:>.
        To post to this group, send email to [email protected]
        <javascript:>.
        To view this discussion on the web visit
        https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com
        <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

        For more options, visit
        https://groups.google.com/a/continuum.io/d/optout
        <https://groups.google.com/a/continuum.io/d/optout>.

--
You received this message because you are subscribed to the Google
Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io
<https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Thanks for that Hugo. I don’t quite understand how that example works - is the event loop in the server running constantly in the server process? I can’t immediately pick out where the magic happens there.

···

On Saturday, 9 August 2014 21:04:11 UTC+10, Hugo Shi wrote:

yes the bokeh server does have it’s own event loop,

please see:

https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py

Unfortunately that is currently on a branch, but it will get merged to
master soon

On Thu 07 Aug 2014 09:46:53 PM EDT, [email protected] wrote:

Hi folks, I’m just starting to look at bokeh so apologies if this

question is a touch naive, but is it possible / is there a good

example of how to run the document update directly triggered by the

event (i.e. is there a server-side event loop available), rather than

using a timer?

Cheers,

Chris.

On Tuesday, 5 August 2014 06:53:31 UTC+10, Damian Avila wrote:

Just to add a little bit to Karan comment... as Armen has pointed
out, you can install the devel release and the example will work
without any need to build all the js. The taylor example was
recently updated in master to be compatible with the new layout
system... however the last devel release include the new system,
so it has to work... ;-)
The simplest option is to use the released version of Bokeh 0.5.1,
but using the old example living here:
[https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py)
<[https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py)>
Hope it helps.
Damian
On Mon, Aug 4, 2014 at 4:30 PM, Karan Dodia <[email protected] >  > >     <javascript:>> wrote:
    Hello Josh,
    Yes, this is indeed currently possible with Bokeh. In fact,
    you might find most, if not all, of the logic required is
    written in the taylor_server.py
    <[https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py)> example,
    as Armen pointed out (thanks!)
    Here's what that looks like at the moment:
    Inline image 1
    You will probably have the most success if you install Bokeh
    from source (and with the --build-js flag; see Installation
    For Developers
    <[http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers](http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers)>).
    As always, feedback is highly appreciated!
    Regards,
    Karan
    On Mon, Aug 4, 2014 at 2:08 PM, Armen Alexanian >  > >         <[email protected] <javascript:>> wrote:
        Hi Josh,
        I'm also very new to Bokeh, however, there's an example on
        this page: [http://continuum.io/blog/bokeh-0.5](http://continuum.io/blog/bokeh-0.5)
        <[http://continuum.io/blog/bokeh-0.5](http://continuum.io/blog/bokeh-0.5)>  that sounds somewhat
        like what you're talking about.  Scroll down the page
        under the sub heading "Widgets".  It should be the middle
        one below the sub heading.  I actually got that one to
        work today, but you have to install Bokeh server and have
        it running.  If you're using the Anaconda version of
        Python, just go to a command prompt and type in:
        bokeh-server --backend=memory.  Make sure you have the
        latest version of Bokeh by going to a command prompt and
        typing in "conda install -c
        [http://conda.binstar.org/bokeh/channel/dev](http://conda.binstar.org/bokeh/channel/dev)
        <[http://conda.binstar.org/bokeh/channel/dev](http://conda.binstar.org/bokeh/channel/dev)> bokeh".
        I'm still very new to this but I wanted to give you a head
        start.  The more advanced folks who are developing it now
        can give you more precise instructions.
        Cheers,
        Armen
        On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein >  > >             <[email protected] <javascript:>> wrote:
            Hi,
            I am new to Bokeh. Congrats on this fantastic project!
            I am hoping to create an extremely simple web app that
            will hopefully be the basis for something bigger later.
            Initially, it would have:
            * A plot
            * A slider
            * A submit button
            The plot would for example show sin(f*x), the slider
            would control/update the value f (the "frequency" of
            the signal the plot). The submit button would simply
            run server-side code in Python that would record the
            value in the slider to a text file.
            Is this at all possible in Bokeh?
            Thanks!
            Josh
            --
            You received this message because you are subscribed
            to the Google Groups "Bokeh Discussion - Public" group.
            To unsubscribe from this group and stop receiving
            emails from it, send an email to
            [email protected] <javascript:>.
            To post to this group, send email to
            [email protected] <javascript:>.
            To view this discussion on the web visit
            [https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com)
            <[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer)>.
            For more options, visit
            [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
            <[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>.
        --
        You received this message because you are subscribed to
        the Google Groups "Bokeh Discussion - Public" group.
        To unsubscribe from this group and stop receiving emails
        from it, send an email to [email protected]
        <javascript:>.
        To post to this group, send email to [email protected]
        <javascript:>.
        To view this discussion on the web visit
        [https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com)
        <[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer)>.
        For more options, visit
        [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
        <[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>.
    --
    You received this message because you are subscribed to the
    Google Groups "Bokeh Discussion - Public" group.
    To unsubscribe from this group and stop receiving emails from
    it, send an email to [email protected] <javascript:>.
    To post to this group, send email to [email protected]
    <javascript:>.
    To view this discussion on the web visit
    [https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com)
    <[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer)>.
    For more options, visit
    [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
    <[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>.

You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send

an email to [email protected]

mailto:[email protected].

To post to this group, send email to [email protected]

mailto:[email protected].

To view this discussion on the web visit

https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io

<https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer>.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.

yea - there is. we should make it more obvious and less magical.

essentially, in the __init__ we call setup_events, and then when objects are updated on the server, those callbacks get triggered

I'm opening an issue to discuss this because I think the way we're doing it is not quite right.

https://github.com/ContinuumIO/bokeh/issues/988

···

On Mon 11 Aug 2014 06:24:41 PM EDT, [email protected] wrote:

Thanks for that Hugo. I don't quite understand how that example works
- is the event loop in the server running constantly in the server
process? I can't immediately pick out where the magic happens there.

On Saturday, 9 August 2014 21:04:11 UTC+10, Hugo Shi wrote:

    yes the bokeh server does have it's own event loop,

    please see:

    https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py
    <https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py>

    Unfortunately that is currently on a branch, but it will get
    merged to
    master soon

    On Thu 07 Aug 2014 09:46:53 PM EDT, [email protected] <javascript:> > wrote:
    > Hi folks, I'm just starting to look at bokeh so apologies if this
    > question is a touch naive, but is it possible / is there a good
    > example of how to run the document update directly triggered by the
    > event (i.e. is there a server-side event loop available), rather
    than
    > using a timer?
    >
    > Cheers,
    > Chris.
    >
    > On Tuesday, 5 August 2014 06:53:31 UTC+10, Damian Avila wrote:
    >
    > Just to add a little bit to Karan comment... as Armen has
    pointed
    > out, you can install the devel release and the example will
    work
    > without any need to build all the js. The taylor example was
    > recently updated in master to be compatible with the new layout
    > system... however the last devel release include the new
    system,
    > so it has to work... :wink:
    > The simplest option is to use the released version of Bokeh
    0.5.1,
    > but using the old example living here:
    >
    https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py
    <https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py>

    >
    <https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py
    <https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py>>

    >
    > Hope it helps.
    >
    > Damian
    >
    > On Mon, Aug 4, 2014 at 4:30 PM, Karan Dodia > <[email protected] > > <javascript:>> wrote:
    >
    > Hello Josh,
    >
    > Yes, this is indeed currently possible with Bokeh. In fact,
    > you might find most, if not all, of the logic required is
    > written in the taylor_server.py
    >
    <https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py
    <https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py>>
    example,
    > as Armen pointed out (thanks!)
    >
    > Here's what that looks like at the moment:
    >
    > Inline image 1
    >
    > You will probably have the most success if you install
    Bokeh
    > from source (and with the --build-js flag; see Installation
    > For Developers
    >
    <http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers
    <http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers>>).

    > As always, feedback is highly appreciated!
    >
    > Regards,
    >
    > Karan
    >
    > On Mon, Aug 4, 2014 at 2:08 PM, Armen Alexanian > > <[email protected] <javascript:>> wrote:
    >
    > Hi Josh,
    >
    > I'm also very new to Bokeh, however, there's an
    example on
    > this page: http://continuum.io/blog/bokeh-0.5
    <http://continuum.io/blog/bokeh-0.5>
    > <http://continuum.io/blog/bokeh-0.5
    <http://continuum.io/blog/bokeh-0.5>> that sounds somewhat
    > like what you're talking about. Scroll down the page
    > under the sub heading "Widgets". It should be the
    middle
    > one below the sub heading. I actually got that one to
    > work today, but you have to install Bokeh server and
    have
    > it running. If you're using the Anaconda version of
    > Python, just go to a command prompt and type in:
    > bokeh-server --backend=memory. Make sure you have the
    > latest version of Bokeh by going to a command prompt
    and
    > typing in "conda install -c
    > http://conda.binstar.org/bokeh/channel/dev
    <http://conda.binstar.org/bokeh/channel/dev>
    > <http://conda.binstar.org/bokeh/channel/dev
    <http://conda.binstar.org/bokeh/channel/dev>> bokeh".
    >
    > I'm still very new to this but I wanted to give you
    a head
    > start. The more advanced folks who are developing
    it now
    > can give you more precise instructions.
    >
    > Cheers,
    > Armen
    >
    > On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein > > <[email protected] <javascript:>> wrote:
    >
    > Hi,
    >
    > I am new to Bokeh. Congrats on this fantastic
    project!
    >
    > I am hoping to create an extremely simple web
    app that
    > will hopefully be the basis for something bigger
    later.
    >
    > Initially, it would have:
    > * A plot
    > * A slider
    > * A submit button
    >
    > The plot would for example show sin(f*x), the
    slider
    > would control/update the value f (the
    "frequency" of
    > the signal the plot). The submit button would
    simply
    > run server-side code in Python that would record
    the
    > value in the slider to a text file.
    >
    > Is this at all possible in Bokeh?
    >
    > Thanks!
    >
    > Josh
    >
    > --
    > You received this message because you are
    subscribed
    > to the Google Groups "Bokeh Discussion - Public"
    group.
    > To unsubscribe from this group and stop receiving
    > emails from it, send an email to
    > [email protected] <javascript:>.
    > To post to this group, send email to
    > [email protected] <javascript:>.
    > To view this discussion on the web visit
    >
    https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com>

    >
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer>>.

    > For more options, visit
    > https://groups.google.com/a/continuum.io/d/optout
    <https://groups.google.com/a/continuum.io/d/optout>
    >
    <https://groups.google.com/a/continuum.io/d/optout
    <https://groups.google.com/a/continuum.io/d/optout>>.
    >
    > --
    > You received this message because you are subscribed to
    > the Google Groups "Bokeh Discussion - Public" group.
    > To unsubscribe from this group and stop receiving
    emails
    > from it, send an email to [email protected]
    > <javascript:>.
    > To post to this group, send email to [email protected]
    > <javascript:>.
    > To view this discussion on the web visit
    >
    https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com>

    >
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer>>.

    >
    > For more options, visit
    > https://groups.google.com/a/continuum.io/d/optout
    <https://groups.google.com/a/continuum.io/d/optout>
    > <https://groups.google.com/a/continuum.io/d/optout
    <https://groups.google.com/a/continuum.io/d/optout>>.
    >
    > --
    > You received this message because you are subscribed to the
    > Google Groups "Bokeh Discussion - Public" group.
    > To unsubscribe from this group and stop receiving emails
    from
    > it, send an email to [email protected]
    <javascript:>.
    > To post to this group, send email to [email protected]
    > <javascript:>.
    > To view this discussion on the web visit
    >
    https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com>

    >
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer>>.

    >
    > For more options, visit
    > https://groups.google.com/a/continuum.io/d/optout
    <https://groups.google.com/a/continuum.io/d/optout>
    > <https://groups.google.com/a/continuum.io/d/optout
    <https://groups.google.com/a/continuum.io/d/optout>>.
    >
    > --
    > You received this message because you are subscribed to the Google
    > Groups "Bokeh Discussion - Public" group.
    > To unsubscribe from this group and stop receiving emails from
    it, send
    > an email to [email protected] <javascript:>
    > <mailto:[email protected] <javascript:>>.
    > To post to this group, send email to [email protected]
    <javascript:>
    > <mailto:[email protected] <javascript:>>.
    > To view this discussion on the web visit
    >
    https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io>

    >
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer
    <https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer>>.

    > For more options, visit
    https://groups.google.com/a/continuum.io/d/optout
    <https://groups.google.com/a/continuum.io/d/optout>.

--
You received this message because you are subscribed to the Google
Groups "Bokeh Discussion - Public" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/a/continuum.io/d/msgid/bokeh/4d6e9ed2-1a30-40bb-8ca3-1d2f561d668c%40continuum.io
<https://groups.google.com/a/continuum.io/d/msgid/bokeh/4d6e9ed2-1a30-40bb-8ca3-1d2f561d668c%40continuum.io?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.

Ok great.

So for my understanding, in the taylor example, the HTML/JS client-side events are triggering server updates, but those server updates do not trigger client-defined python events, so it is the python document load that triggers the server document update? And the sin example links the user-defined events to the server-side events (does the sin example live on the server-side?)? Or am I way off track here?

···

On Tuesday, 12 August 2014 09:27:04 UTC+10, Hugo Shi wrote:

yea - there is. we should make it more obvious and less magical.

essentially, in the init we call setup_events, and then when
objects are updated on the server, those callbacks get triggered

I’m opening an issue to discuss this because I think the way we’re
doing it is not quite right.

https://github.com/ContinuumIO/bokeh/issues/988

On Mon 11 Aug 2014 06:24:41 PM EDT, [email protected] wrote:

Thanks for that Hugo. I don’t quite understand how that example works

  • is the event loop in the server running constantly in the server

process? I can’t immediately pick out where the magic happens there.

On Saturday, 9 August 2014 21:04:11 UTC+10, Hugo Shi wrote:

yes the bokeh server does have it's own event loop,
please see:
[https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py](https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py)
<[https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py](https://github.com/ContinuumIO/bokeh/blob/feature/sin_example/examples/app/applet/sin_example.py)>
Unfortunately that is currently on a branch, but it will get
merged to
master soon
On Thu 07 Aug 2014 09:46:53 PM EDT, [email protected] <javascript:> >  > >     wrote:
> Hi folks, I'm just starting to look at bokeh so apologies if this
> question is a touch naive, but is it possible / is there a good
> example of how to run the document update directly triggered by the
> event (i.e. is there a server-side event loop available), rather
than
> using a timer?
>
> Cheers,
> Chris.
>
>
> On Tuesday, 5 August 2014 06:53:31 UTC+10, Damian Avila wrote:
>
>     Just to add a little bit to Karan comment... as Armen has
pointed
>     out, you can install the devel release and the example will
work
>     without any need to build all the js. The taylor example was
>     recently updated in master to be compatible with the new layout
>     system... however the last devel release include the new
system,
>     so it has to work... ;-)
>     The simplest option is to use the released version of Bokeh
0.5.1,
>     but using the old example living here:
>
[https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py)
<[https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py)>
>
<[https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py)
<[https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/0.5.1/examples/glyphs/taylor_server.py)>>
>
>     Hope it helps.
>
>     Damian
>
>
>     On Mon, Aug 4, 2014 at 4:30 PM, Karan Dodia >  > >     <[email protected] >  > >     >     <javascript:>> wrote:
>
>         Hello Josh,
>
>         Yes, this is indeed currently possible with Bokeh. In fact,
>         you might find most, if not all, of the logic required is
>         written in the taylor_server.py
>
<[https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py)
<[https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py](https://github.com/ContinuumIO/bokeh/blob/master/examples/glyphs/taylor_server.py)>>
example,
>         as Armen pointed out (thanks!)
>
>         Here's what that looks like at the moment:
>
>         Inline image 1
>
>         You will probably have the most success if you install
Bokeh
>         from source (and with the --build-js flag; see Installation
>         For Developers
>
<[http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers](http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers)
<[http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers](http://bokeh.pydata.org/docs/dev_guide.html#installation-for-developers)>>).
>         As always, feedback is highly appreciated!
>
>         Regards,
>
>         Karan
>
>
>         On Mon, Aug 4, 2014 at 2:08 PM, Armen Alexanian >  > >     >         <[email protected] <javascript:>> wrote:
>
>             Hi Josh,
>
>             I'm also very new to Bokeh, however, there's an
example on
>             this page: [http://continuum.io/blog/bokeh-0.5](http://continuum.io/blog/bokeh-0.5)
<[http://continuum.io/blog/bokeh-0.5](http://continuum.io/blog/bokeh-0.5)>
>             <[http://continuum.io/blog/bokeh-0.5](http://continuum.io/blog/bokeh-0.5)
<[http://continuum.io/blog/bokeh-0.5](http://continuum.io/blog/bokeh-0.5)>>  that sounds somewhat
>             like what you're talking about.  Scroll down the page
>             under the sub heading "Widgets".  It should be the
middle
>             one below the sub heading.  I actually got that one to
>             work today, but you have to install Bokeh server and
have
>             it running.  If you're using the Anaconda version of
>             Python, just go to a command prompt and type in:
>             bokeh-server --backend=memory.  Make sure you have the
>             latest version of Bokeh by going to a command prompt
and
>             typing in "conda install -c
> [http://conda.binstar.org/bokeh/channel/dev](http://conda.binstar.org/bokeh/channel/dev)
<[http://conda.binstar.org/bokeh/channel/dev](http://conda.binstar.org/bokeh/channel/dev)>
>             <[http://conda.binstar.org/bokeh/channel/dev](http://conda.binstar.org/bokeh/channel/dev)
<[http://conda.binstar.org/bokeh/channel/dev](http://conda.binstar.org/bokeh/channel/dev)>> bokeh".
>
>             I'm still very new to this but I wanted to give you
a head
>             start.  The more advanced folks who are developing
it now
>             can give you more precise instructions.
>
>             Cheers,
>             Armen
>
>
>
>             On Mon, Aug 4, 2014 at 12:00 PM, Josh Wasserstein >  > >     >             <[email protected] <javascript:>> wrote:
>
>                 Hi,
>
>                 I am new to Bokeh. Congrats on this fantastic
project!
>
>                 I am hoping to create an extremely simple web
app that
>                 will hopefully be the basis for something bigger
later.
>
>                 Initially, it would have:
>                 * A plot
>                 * A slider
>                 * A submit button
>
>                 The plot would for example show sin(f*x), the
slider
>                 would control/update the value f (the
"frequency" of
>                 the signal the plot). The submit button would
simply
>                 run server-side code in Python that would record
the
>                 value in the slider to a text file.
>
>                 Is this at all possible in Bokeh?
>
>                 Thanks!
>
>                 Josh
>
>
>                 --
>                 You received this message because you are
subscribed
>                 to the Google Groups "Bokeh Discussion - Public"
group.
>                 To unsubscribe from this group and stop receiving
>                 emails from it, send an email to
> [email protected] <javascript:>.
>                 To post to this group, send email to
> [email protected] <javascript:>.
>                 To view this discussion on the web visit
>
[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com)>
>
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAD4ivxXzHANDT934WsTvrcwQj8q%3DW2vk9v3yHjPBgeStcUdN7g%40mail.gmail.com?utm_medium=email&utm_source=footer)>>.
>                 For more options, visit
> [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>
>
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>>.
>
>
>             --
>             You received this message because you are subscribed to
>             the Google Groups "Bokeh Discussion - Public" group.
>             To unsubscribe from this group and stop receiving
emails
>             from it, send an email to [email protected]
>             <javascript:>.
>             To post to this group, send email to [email protected]
>             <javascript:>.
>             To view this discussion on the web visit
>
[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com)>
>
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CALLGW%3Dxt8xZX7q8Ef0OUqR1s1VsH2mHr55N87hjZAuB4KxUpqw%40mail.gmail.com?utm_medium=email&utm_source=footer)>>.
>
>             For more options, visit
> [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>
>             <[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>>.
>
>
>         --
>         You received this message because you are subscribed to the
>         Google Groups "Bokeh Discussion - Public" group.
>         To unsubscribe from this group and stop receiving emails
from
>         it, send an email to [email protected]
<javascript:>.
>         To post to this group, send email to [email protected]
>         <javascript:>.
>         To view this discussion on the web visit
>
[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com)>
>
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/CAOvoNRTuoarjcu-HhEVGR%2BTnqOnvCptJ%2BLDpsDq%2BXwM510UbsA%40mail.gmail.com?utm_medium=email&utm_source=footer)>>.
>
>         For more options, visit
> [https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>
>         <[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>>.
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Bokeh Discussion - Public" group.
> To unsubscribe from this group and stop receiving emails from
it, send
> an email to [email protected] <javascript:>
> <mailto:[email protected] <javascript:>>.
> To post to this group, send email to [email protected]
<javascript:>
> <mailto:[email protected] <javascript:>>.
> To view this discussion on the web visit
>
[https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io](https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io)>
>
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer)
<[https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer](https://groups.google.com/a/continuum.io/d/msgid/bokeh/265052d2-8049-4253-8cd5-0ed86b96ba24%40continuum.io?utm_medium=email&utm_source=footer)>>.
> For more options, visit
[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)
<[https://groups.google.com/a/continuum.io/d/optout](https://groups.google.com/a/continuum.io/d/optout)>.

You received this message because you are subscribed to the Google

Groups “Bokeh Discussion - Public” group.

To unsubscribe from this group and stop receiving emails from it, send

an email to [email protected]

mailto:[email protected].

To post to this group, send email to [email protected]

mailto:[email protected].

To view this discussion on the web visit

https://groups.google.com/a/continuum.io/d/msgid/bokeh/4d6e9ed2-1a30-40bb-8ca3-1d2f561d668c%40continuum.io

<https://groups.google.com/a/continuum.io/d/msgid/bokeh/4d6e9ed2-1a30-40bb-8ca3-1d2f561d668c%40continuum.io?utm_medium=email&utm_source=footer>.

For more options, visit https://groups.google.com/a/continuum.io/d/optout.