jupyter/docker-demo-images

Examples notebook in other languages.

Carreau opened this issue · 17 comments

Now that we have Haskell and Ruby kernel, it would be nice to have a Welcome - <language> for each.

Ping @minad and @gibiansky I guess !

That would be good. We should change the title of the Python one to say Python in it too I suppose. Also add some slick widgets. 😄

Agreed. @sumitsahrawat is working on adding the backbone widgets from IPython to IHaskell for his GSoC project, and we have a nice parsing widget. @sumitsahrawat , we had some issues with disk usage of haskell libraries, does that mean it would be unreasonable to try to install all the display packages and use our normal demo notebook?

That notebook is small - that shouldn't be a problem at all.

It was the majority of Haskell that was huge.

We're installing from hackage, so it would be possible to cherrypick the packages required by the notebook. If it doesn't affect the size much, we can go further and install all the packages.

I'll try and see how much the size changes.

The notebook is small, but it depends on many libraries in order to function fully, and we would need to install those libraries into the docker container in order to use it. If we needed to trim the libraries, I think the two with highest priority would be parsec and diagrams; after that, blaze and one of the plotting libraries. @sumitsahrawat Let me know what happens with size constraints, and I can try to modify the demo notebook to have less libraries in it.

For a first notebook, you can "just" add link to your project, and a link
to a better demo notebook on nbviewer.

I think even just a hello world is a gigantic step forward, as most people
comming on jupyterdrive will just think "Oh my Gosh, I can write Haskell".

On Tue, May 26, 2015 at 9:49 AM, Andrew Gibiansky notifications@github.com
wrote:

The notebook is small, but it depends on many libraries in order to
function fully, and we would need to install those libraries into the
docker container in order to use it. If we needed to trim the libraries, I
think the two with highest priority would be parsec and diagrams; after
that, blaze and one of the plotting libraries. @sumitsahrawat
https://github.com/sumitsahrawat Let me know what happens with size
constraints, and I can try to modify the demo notebook to have less
libraries in it.


Reply to this email directly or view it on GitHub
#46 (comment)
.

Added a notebook: #48

@sumitsahrawat Do you mind running ghc-pkg list in the Docker container, so that we know all the packages available to write code snippets with? At least one graphical one would be nice – probably diagrams and ihaskell-diagrams if the size is not prohibitive. Once I have that I'll post a link on Reddit asking people for short and suite code snippets, and we can use this notebook as a small showcase of cool things one can do with Haskell. (It should not become very large, but just bit enough to demonstrate a few areas.)

Do you mind running ghc-pkg list?

Via https://lambdaops.com/share-cell/?code=ghc-pkg%20list&kernel_name=bash

/opt/ghc/7.8.4/lib/ghc-7.8.4/package.conf.d:
    Cabal-1.18.1.5
    array-0.5.0.0
    base-4.7.0.2
    bin-package-db-0.0.0.0
    binary-0.7.1.0
    rts-1.0
    bytestring-0.10.4.0
    containers-0.5.5.1
    deepseq-1.3.0.2
    directory-1.2.1.0
    filepath-1.3.0.2
    (ghc-7.8.4)
    ghc-prim-0.3.1.0
    haskeline-0.7.1.2
    (haskell2010-1.1.2.0)
    (haskell98-2.0.0.3)
    hoopl-3.10.0.1
    hpc-0.6.0.1
    integer-gmp-0.5.1.0
    old-locale-1.0.0.6
    old-time-1.1.0.2
    pretty-1.1.1.1
    process-1.2.0.0
    template-haskell-2.9.0.0
    terminfo-0.4.0.0
    time-1.4.2
    transformers-0.3.0.0
    unix-2.7.0.1
    xhtml-3000.2.1

/home/jovyan/.ghc/x86_64-linux-7.8.4/package.conf.d:
    HUnit-1.2.5.2
    MissingH-1.3.0.1
    QuickCheck-2.8.1
    ReadArgs-1.2.2
    SHA-1.6.4.2
    StateVar-1.1.0.0
    adjunctions-4.2.1
    aeson-0.8.1.1
    ansi-terminal-0.6.2.1
    asn1-encoding-0.9.0
    asn1-parse-0.9.1
    asn1-types-0.3.0
    async-2.0.2
    attoparsec-0.13.0.0
    base-orphans-0.3.2
    base64-bytestring-1.0.0.1
    basic-prelude-0.3.13
    bifunctors-5
    blaze-builder-0.4.0.1
    byteable-0.1.1
    case-insensitive-1.2.0.4
    cereal-0.4.1.1
    chunked-data-0.2.0
    cipher-aes-0.2.10
    cipher-des-0.0.6
    cipher-rc4-0.1.4
    classy-prelude-0.10.5
    cmdargs-0.10.13
    comonad-4.2.6
    connection-0.2.4
    constraints-0.4.1.3
    contravariant-1.3.1.1
    cookie-0.4.1.5
    cpphs-1.19
    crypto-cipher-types-0.0.9
    crypto-numbers-0.2.7
    crypto-pubkey-0.2.8
    crypto-pubkey-types-0.4.3
    crypto-random-0.0.9
    cryptohash-0.11.6
    data-default-class-0.0.1
    distributive-0.4.4
    dlist-0.7.1.1
    dlist-instances-0.1
    enclosed-exceptions-1.0.1.1
    exceptions-0.8.0.2
    extra-1.2
    free-4.12.1
    ghc-parser-0.1.7.0
    ghc-paths-0.1.0.9
    hashable-1.2.3.2
    hashtables-1.2.0.2
    haskell-src-exts-1.16.0.1
    haskell-src-meta-0.6.0.9
    here-1.2.7
    hlint-1.9.20
    hourglass-0.2.9
    hscolour-1.23
    hslogger-1.2.9
    hspec-2.1.7
    hspec-core-2.1.7
    hspec-discover-2.1.7
    hspec-expectations-0.6.1.1
    http-client-0.4.11.2
    http-client-tls-0.2.2
    http-types-0.8.6
    ihaskell-0.6.2.0
    ipython-kernel-0.6.1.0
    kan-extensions-4.2.2
    keys-3.10.2
    lifted-async-0.7.0.1
    lifted-base-0.2.3.6
    mime-types-0.1.0.6
    monad-control-1.0.0.4
    mono-traversable-0.9.1
    mtl-2.1.3.1
    mutable-containers-0.2.1.2
    mwc-random-0.13.3.2
    nats-1
    network-2.6.1.0
    network-info-0.2.0.5
    network-uri-2.6.0.3
    newtype-0.2
    parsec-3.1.9
    pem-0.2.2
    pointed-4.2.0.2
    polyparse-1.11
    prelude-extras-0.4
    primitive-0.6
    profunctors-5.1.1
    quickcheck-io-0.1.1
    random-1.1
    regex-base-0.93.2
    regex-compat-0.95.1
    regex-posix-0.95.2
    safe-0.3.9
    scientific-0.3.3.8
    securemem-0.1.7
    semigroupoids-5.0.0.1
    semigroups-0.16.2.2
    setenv-0.1.1.3
    shelly-1.6.2.5
    socks-0.5.4
    split-0.2.2
    stm-2.4.4
    streaming-commons-0.1.12.1
    strict-0.3.2
    syb-0.4.4
    system-argv0-0.1.1
    system-fileio-0.3.16.3
    system-filepath-0.4.13.4
    tagged-0.8.0.1
    tar-0.4.1.0
    text-1.2.1.0
    tf-random-0.5
    th-expand-syns-0.3.0.6
    th-lift-0.7.2
    th-orphans-0.11.1
    th-reify-many-0.1.3
    tls-1.2.17
    transformers-base-0.4.4
    transformers-compat-0.4.0.3
    uniplate-1.6.12
    unix-compat-0.4.1.4
    unordered-containers-0.2.5.1
    utf8-string-1
    uuid-1.3.10
    uuid-types-1.0.1
    vector-0.10.12.3
    vector-algorithms-0.7
    vector-instances-3.3.0.1
    void-0.7
    x509-1.5.0.1
    x509-store-1.5.0
    x509-system-1.5.0
    x509-validation-1.5.2
    zeromq4-haskell-0.6.3
    zlib-0.6.1.1

I've been unable to build the docker container due to interrnet connectivity issues. I'll put it on a loop and see how it fares.

Which parts are having connectivity issues for you?

I mean, my internet connection periodically breaks down. No issue on the docker side.

@gibiansky try.jupyter.org also provides a terminal. 😄

@sumitsahrawat Oh, duh. Also, could just do :!ghc-pkg list from a Haskell notebook. Should've thought of that... Thanks!

Anyway the IHaskell side of this issue is done for now!

@sumitsahrawat Oh, duh. Also, could just do :!ghc-pkg list from a Haskell notebook. Should've thought of that... Thanks!

Anyway the IHaskell side of this issue is done for now!

You know you can also do new > terminal right ?

@Carreau I did not know that before, but I tried it after @sumitsahrawat pointed it out :)

it after @sumitsahrawat pointed it out :)

Hum, weird, this part of the message does not appear on my inbox, but is here on github...

@Carreau @rgbkrk @parente and others, I'm going to mark this closed since the precedent to have language demo notebooks has been set. Feel free to reopen if I missed an outstanding element here. My recommendation would be to create a language specific issue if there is interest in a particular language demo/intro notebook.

That's great. Thanks for tending to the issues @willingc!