fsprojects / IfSharp

F# for Jupyter Notebooks
Other
441 stars 71 forks source link

Issues while trying out samples #155

Closed forki closed 6 years ago

forki commented 6 years ago

@jdh30 reported issues with the azure notebook samples on Twitter: https://twitter.com/jonharrop/status/916312696458502144

I just report it here so that contributors know about it and may check if samples are still up-to-date

cgravill commented 6 years ago

I'm guessing it's this one https://twitter.com/jonharrop/status/916313349272621056

This is working for me:

  1. https://notebooks.azure.com/
  2. Choose the Introduction to F#
  3. Clone
  4. Run the relevant cells at the end of the notebook

image

https://notebooks.azure.com/cgravill/libraries/fsharp_test/html/FSharp%20for%20Azure%20Notebooks.ipynb

Note the preview will not show the hovering circle and instead the the HTML. This is a by-design Jupyter security behaviour: http://jupyter-notebook.readthedocs.io/en/stable/security.html#our-security-model

There are potential safe ways around this.

@jdh30 can you provide any more details on the original bug please?

cgravill commented 6 years ago

On the original tweet, we're demonstrating interactive D3 hence it being long. If someone just wants to draw a circle they can do something shorter:

image

we should probably make Bitmap types display automatically so the imageToByteArray isn't needed. For various reasons, we tend to work with SVGs which is what this has already been done for.

jdh30 commented 6 years ago

No, it was this one:

https://twitter.com/jonharrop/status/916313349272621056

https://pbs.twimg.com/media/DLdmEYIW0AAO8lx.png

https://pbs.twimg.com/media/DLdmFsoWkAYeipG.png

I did exactly what you said (choose F# Intro, Clone, Kernel->Run all). Running in Chrome on Windows 10.

dsyme commented 6 years ago

@cgravill - I can repro the bug by cloning the notebook https://notebooks.azure.com/cgravill/libraries/fsharp_test/html/FSharp%20for%20Azure%20Notebooks.ipynb

Mono version is showing as 5.0.1.1 - I recall a Mono bug that has been fixed in early 5.0.x. I think we should update to 5.2 or 5.4, I tried to use the in-browser terminal (click on Jupyter to left of notebook --> "New" -> "Terminal") to update a running kernel (it should be possible?) but didn't have the nbuser sudo password for the docker image - is it public?

image

dsyme commented 6 years ago

@jdh30 Thanks for the bug report - we evidently didn't re-validate the notebook after a Mono update

cgravill commented 6 years ago

Thanks @jdh30 that clarifies where the issue is - I was testing later in the notebook based in the initial report. I can reproduce the error in the online Azure Notebooks. It doesn't occur in a local IfSharp Windows install so it'll need digging into.

cgravill commented 6 years ago

@dsyme Mono 5.2.* looks promising as a fix.

On macOS 10.12.6:

Mono JIT compiler version 5.2.0.224 (d15-3/14f2c81 Thu Aug 24 10:33:52 EDT 2017)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       altstack
    Notification:  kqueue
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    LLVM:          yes(3.6.0svn-mono-master/8b1520c)
    GC:            sgen (concurrent by default)

The relevant code runs successfully:

type MyType = { FirstName: string; LastName: string }
let records = 
    [|
        { FirstName = "Walter"; LastName = "Harp" }
        { FirstName = "Jeff"; LastName = "Smith" }
        { FirstName = "Ben"; LastName = "Smith" }
        { FirstName = ""; LastName = "Holly" }
    |]

records |> Util.Table
cgravill commented 6 years ago

@dsyme there looks to be a way of getting privileges here https://github.com/Microsoft/AzureNotebooks/issues/112 (I've not tried it as it looks involved...)

cgravill commented 6 years ago

Mono 5.2.0.224 is deployed to Azure Notebooks, and I've validated it there. Let us know if more issues come up.