The Go kernel for Jupyter notebooks and nteract.

Overview

alt tag

Build Status License

gophernotes - Use Go in Jupyter notebooks and nteract

gophernotes is a Go kernel for Jupyter notebooks and nteract. It lets you use Go interactively in a browser-based notebook or desktop app. Use gophernotes to create and share documents that contain live Go code, equations, visualizations and explanatory text. These notebooks, with the live Go code, can then be shared with others via email, Dropbox, GitHub and the Jupyter Notebook Viewer. Go forth and do data science, or anything else interesting, with Go notebooks!

Acknowledgements - This project utilizes a Go interpreter called gomacro under the hood to evaluate Go code interactively. The gophernotes logo was designed by the brilliant Marcus Olsson and was inspired by Renee French's original Go Gopher design.

Examples

Jupyter Notebook:

nteract:

Example Notebooks (download and run them locally, follow the links to view in Github, or use the Jupyter Notebook Viewer):

Installation

Prerequisites

Linux or FreeBSD

The instructions below should work both on Linux and on FreeBSD.

Method 1: quick installation as module

$ env GO111MODULE=on go get github.com/gopherdata/gophernotes
$ mkdir -p ~/.local/share/jupyter/kernels/gophernotes
$ cd ~/.local/share/jupyter/kernels/gophernotes
$ cp "$(go env GOPATH)"/pkg/mod/github.com/gopherdata/[email protected]/kernel/*  "."
$ chmod +w ./kernel.json # in case copied kernel.json has no write permission
$ sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json

Method 2: manual installation from GOPATH

$ env GO111MODULE=off go get -d -u github.com/gopherdata/gophernotes
$ cd "$(go env GOPATH)"/src/github.com/gopherdata/gophernotes
$ env GO111MODULE=on go install
$ mkdir -p ~/.local/share/jupyter/kernels/gophernotes
$ cp kernel/* ~/.local/share/jupyter/kernels/gophernotes
$ cd ~/.local/share/jupyter/kernels/gophernotes
$ chmod +w ./kernel.json # in case copied kernel.json has no write permission
$ sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json

To confirm that the gophernotes binary is installed in GOPATH, execute it directly:

$ "$(go env GOPATH)"/bin/gophernotes

and you shoud see the following:

2017/09/20 10:33:12 Need a command line argument specifying the connection file.

Note - if you have the JUPYTER_PATH environmental variable set or if you are using an older version of Jupyter, you may need to copy this kernel config to another directory. You can check which directories will be searched by executing:

$ jupyter --data-dir

Mac

Important Note - gomacro relies on the plugin package when importing third party libraries. This package works reliably on Mac OS X with Go 1.10.2+ as long as you never execute the command strip gophernotes.

Method 1: quick installation as module

$ env GO111MODULE=on go get github.com/gopherdata/gophernotes
$ mkdir -p ~/Library/Jupyter/kernels/gophernotes
$ cd ~/Library/Jupyter/kernels/gophernotes
$ cp "$(go env GOPATH)"/pkg/mod/github.com/gopherdata/[email protected]/kernel/*  "."
$ chmod +w ./kernel.json # in case copied kernel.json has no write permission
$ sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json

Method 2: manual installation from GOPATH

$ env GO111MODULE=off go get -d -u github.com/gopherdata/gophernotes
$ cd "$(go env GOPATH)"/src/github.com/gopherdata/gophernotes
$ env GO111MODULE=on go install
$ mkdir -p ~/Library/Jupyter/kernels/gophernotes
$ cp kernel/* ~/Library/Jupyter/kernels/gophernotes
$ cd ~/Library/Jupyter/kernels/gophernotes
$ chmod +w ./kernel.json # in case copied kernel.json has no write permission
$ sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json

To confirm that the gophernotes binary is installed in GOPATH, execute it directly:

$ "$(go env GOPATH)"/bin/gophernotes

and you shoud see the following:

2017/09/20 10:33:12 Need a command line argument specifying the connection file.

Note - if you have the JUPYTER_PATH environmental variable set or if you are using an older version of Jupyter, you may need to copy this kernel config to another directory. You can check which directories will be searched by executing:

$ jupyter --data-dir

Windows

Important Note - gomacro relies on the plugin package when importing third party libraries. This package is only supported on Linux and Mac OS X currently. Thus, if you need to utilize third party packages in your Go notebooks and you are running on Windows, you should use the Docker install and run gophernotes/Jupyter in Docker.

  1. Copy the kernel config:

    mkdir %APPDATA%\jupyter\kernels\gophernotes
    xcopy %GOPATH%\src\github.com\gopherdata\gophernotes\kernel %APPDATA%\jupyter\kernels\gophernotes /s
    

    Note, if you have the JUPYTER_PATH environmental variable set or if you are using an older version of Jupyter, you may need to copy this kernel config to another directory. You can check which directories will be searched by executing:

    jupyter --data-dir
    
  2. Update %APPDATA%\jupyter\kernels\gophernotes\kernel.json with the FULL PATH to your gophernotes.exe (in %GOPATH%\bin), unless it's already on the PATH. For example:

    {
        "argv": [
          "C:\\gopath\\bin\\gophernotes.exe",
          "{connection_file}"
          ],
        "display_name": "Go",
        "language": "go",
        "name": "go"
    }
    

Docker

You can try out or run Jupyter + gophernotes without installing anything using Docker. To run a Go notebook that only needs things from the standard library, run:

$ docker run -it -p 8888:8888 gopherdata/gophernotes

Or to run a Go notebook with access to common Go data science packages (gonum, gota, golearn, etc.), run:

$ docker run -it -p 8888:8888 gopherdata/gophernotes:latest-ds

In either case, running this command should output a link that you can follow to access Jupyter in a browser. Also, to save notebooks to and/or load notebooks from a location outside of the Docker image, you should utilize a volume mount. For example:

$ docker run -it -p 8888:8888 -v /path/to/local/notebooks:/path/to/notebooks/in/docker gopherdata/gophernotes

Getting Started

Jupyter

  • If you completed one of the local installs above (i.e., not the Docker install), start the jupyter notebook server:

    jupyter notebook
    
  • Select Go from the New drop down menu.

  • Have fun!

nteract

  • Launch nteract.

  • From the nteract menu select Language -> Go.

  • Have fun!

Limitations

gophernotes uses gomacro under the hood to evaluate Go code interactively. You can evaluate most any Go code with gomacro, but there are some limitations, which are discussed in further detail here. Most notably, gophernotes does NOT support:

  • third party packages when running natively on Windows - This is a current limitation of the Go plugin package.
  • some corner cases on interpreted interfaces, as interface -> interface type switch and type assertion, are not implemented yet.
  • some corner cases on recursive types may not work correctly.
  • conversion from typed constant to interpreted interface is not implemented. Workaround: assign the constant to a variable, then convert the variable to the interpreted interface type.
  • conversions from/to unsafe.Pointer are not supported.
  • goto is only partially implemented.
  • out-of-order code in the same cell is supported, but not heavily tested. It has some known limitations for composite literals.

Also, creation of new named types is emulated, and their methods are visible only to interpreted code.

Troubleshooting

gophernotes not found

Depending on your environment, you may need to manually change the path to the gophernotes executable in kernel/kernel.json before copying it to ~/.local/share/jupyter/kernels/gophernotes. You can put the full path to the gophernotes executable here, and you shouldn't have any further issues.

"Kernel error" in a running notebook

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/notebook/base/handlers.py", line 458, in wrapper
    result = yield gen.maybe_future(method(self, *args, **kwargs))
  File "/usr/local/lib/python2.7/site-packages/tornado/gen.py", line 1008, in run
    value = future.result()
  ...
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Stop jupyter, if it's already running.

Add a symlink to /go/bin/gophernotes from your path to the gophernotes executable. If you followed the instructions above, this will be:

sudo ln -s $HOME/go/bin/gophernotes /go/bin/gophernotes

Restart jupyter, and you should now be up and running.

error "could not import C (no metadata for C)" when importing a package

At a first analysis, it seems to be a limitation of the new import mechanism that supports Go modules. You can switch the old (non module-aware) mechanism with the command %go111module off

To re-enable modules support, execute %go111module on

Look at Jupyter notebook's logs for debugging

In order to see the logs for your Jupyter notebook, use the --log-level option

jupyter notebook --log-level DEBUG
Comments
  • Import third party packages on freebsd

    Import third party packages on freebsd

    i got flowing same error when i import any thirdpart package on jupyter notebook

    error writing file "/projects/go/src/github.com/gopherdata/gophernotes/imports/thirdparty/github_com_nsf_gocode.go": open /projects/go/src/github.com/gopherdata/gophernotes/imports/thirdparty/github_com_nsf_gocode.go: no such file or directory

    enhancement 
    opened by zishucom 23
  • Need more integrated HTML support

    Need more integrated HTML support

    Currently, the only way that I see to display HTML in a notebook is to use display.HTML(obj). It would be nice if there something like an HTMLer interface that would allow the HTML representation of an object to be displayed automatically instead of the text version. Something like the following:

    type HTMLer interface {
        HTML() string
    }
    
    opened by kesmit13 23
  • Can't reach the local site

    Can't reach the local site

    $ docker run --name gophernotes --net host -it dwhitena/gophernotes:latest
    [I 09:52:12.780 NotebookApp] Copying /.ipython/kernels -> /.local/share/jupyter/kernels
    [I 09:52:12.790 NotebookApp] Writing notebook server cookie secret to /.local/share/jupyter/runtime/notebook_cookie_secret
    [I 09:52:12.860 NotebookApp] Serving notebooks from local directory: /
    [I 09:52:12.860 NotebookApp] 0 active kernels
    [I 09:52:12.860 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
    [I 09:52:12.860 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    [W 09:52:12.860 NotebookApp] No web browser found: could not locate runnable browser.
    

    and when stopping:

    ^C[I 09:53:45.030 NotebookApp] interrupted
    Serving notebooks from local directory: /
    0 active kernels
    The IPython Notebook is running at: http://localhost:8888/
    Shutdown this notebook server (y/[n])? ^C[C 09:53:46.720 NotebookApp] received signal 2, stopping
    [I 09:53:46.720 NotebookApp] Shutting down kernels
    
    $ docker version
    Client:
     Version:      1.10.0
     API version:  1.22
     Go version:   go1.5.3
     Git commit:   590d510
     Built:        Fri Feb  5 08:21:41 UTC 2016
     OS/Arch:      darwin/amd64
    
    Server:
     Version:      1.10.0
     API version:  1.22
     Go version:   go1.5.3
     Git commit:   590d5108
     Built:        Thu Feb  4 19:55:25 2016
     OS/Arch:      linux/amd64
    

    I assume it's because the NotebookApp tries to find its own server by pinging localhost, which on OS X using boot2docker or dlite does not make sense as the guest's container runs inside a VM rather the host.

    opened by djui 18
  • Error installing on Windows

    Error installing on Windows

    Trying to install in Windows, after this line in command prompt: ..\Go\src\github.com\gopherdata\gophernotes\zmq-win>build.bat amd64 I get : ..Go/src/github.com/gopherdata/gophernotes/zmq-win/lib-amd64/libzmq.a: error adding symbols: File in wrong format collect2.exe: error: ld returned 1 exit status

    Googled it extensively, not sure how to fix this.

    opened by hlalibe 17
  • Return image data to Jupyter front end?

    Return image data to Jupyter front end?

    This is obviously more of a question / feature request than an issue, but being able to do inline plotting and image display would be a big win for this package!

    Maybe this issue can be a starting point for discussion (or feel free to point me to a more appropriate venue, if available).

    Here's the problem as I understand it:

    1. Jupyter implements a display_data message type that the kernel can use to communicate image data results to the front end. http://jupyter-client.readthedocs.org/en/latest/messaging.html#id3
    2. Go has a flexible standard image library, and lots of non-core plotting libraries built on top of it.
    3. The "gore-like" REPL that gophernotes uses to execute requests appears to know nothing about images (or anything at all but text produced by the Stringer interface)

    Is there any way to bridge the impedance mismatch between 2) and 3)? If we can figure out a way to get image data out of the REPL, it seems pretty straightforward to implement the appropriate display_data messages to communicate it back to the frontend.

    In the meantime the only real way to do this is to write images to files and then embed them within markdown cells. But this is suboptimal both because it's clunky and because such images do not update live when the code that generates them changes due to caching, etc.

    Anyway, making this work seemlessly would be an incredibly cool enhancement to this already very useful package. I'm pretty new to Go and Jupyter, but a very experienced developer otherwise, so I'm willing to help-out wherever I can.

    Thanks!

    help wanted 
    opened by vsivsi 13
  • # runtime/cgo exec:

    # runtime/cgo exec: "gcc": executable file not found in %PATH%

    the error has been occured in window 10 home edition

    after executeing the below command

    REM Download w/o building. go get -d -u github.com/gopherdata/gophernotes cd %GOPATH%\src\github.com\gopherdata\gophernotes\zmq-win

    REM Build x64 version. build.bat amd64

    after this the above error is displayed

    opened by tkalangi 12
  • Import third party not working even though in GOPATH

    Import third party not working even though in GOPATH

    Just downloaded and installed gophernotes on Ubuntu 16.04 and Go 1.9.1

    I have the package dataframe installed from github.com/kniren/gotta/dataframe. I was able to start the gophernotes kernel successfully, but was unable to import any third party packages. I was able to use the text editor and terminal inside of jupyter to run code I was trying to run from the Go notebook, though.

    Screenshot of gophernotes notebook:

    notebook screenshot Code snippet that worked:

    package main
    ​
    import "fmt"
    import "os"
    import "github.com/kniren/gota/dataframe"
    ​
    func main() {
        csvData, err := os.Open("test_data.csv")
        if err != nil {
            fmt.Println("could not open test_data.csv")
        }
        
        df := dataframe.ReadCSV(csvData)
        dfSummary := df.Describe()
        
        fmt.Println(df)
        fmt.Printf("%v", dfSummary)
    }
    

    Results of go run on that code

    OS info if needed:

    u0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
    Distributor ID: Ubuntu
    Description:    Ubuntu 16.04.3 LTS
    Release:        16.04
    Codename:       xenial```
    opened by raybuhr 12
  • about zmq

    about zmq

    I have zmq4 in my mac, and I did try to install gophernotes. but there is a error: could not determine kind of name for C.ZMQ_HWM could not determine kind of name for C.ZMQ_MCAST_LOOP could not determine kind of name for C.ZMQ_RECOVERY_IVL_MSEC could not determine kind of name for C.ZMQ_SWAP

    so i installed zmq2.2 by homebrew. how can i Iinstall gophernotes with zmq2.2 ?

    opened by hsz1273327 12
  • No such file or directory: '/go/bin/gophernotes'

    No such file or directory: '/go/bin/gophernotes'

    After installing gophernotes I've got this message:

    # github.com/gophergala2016/gophernotes/Godeps/_workspace/src/github.com/alecthomas/gozmq
    could not determine kind of name for C.ZMQ_HWM
    could not determine kind of name for C.ZMQ_MCAST_LOOP
    could not determine kind of name for C.ZMQ_RECOVERY_IVL_MSEC
    could not determine kind of name for C.ZMQ_SWAP
    

    And running notebook:

    Traceback` (most recent call last):
      File "/usr/lib/python3.5/site-packages/notebook/base/handlers.py", line 458, in wrapper
        result = yield gen.maybe_future(method(self, *args, **kwargs))
      File "/usr/lib/python3.5/site-packages/tornado/gen.py", line 1008, in run
        value = future.result()
      File "/usr/lib/python3.5/site-packages/tornado/concurrent.py", line 232, in result
        raise_exc_info(self._exc_info)
      File "<string>", line 3, in raise_exc_info
      File "/usr/lib/python3.5/site-packages/tornado/gen.py", line 1014, in run
        yielded = self.gen.throw(*exc_info)
      File "/usr/lib/python3.5/site-packages/notebook/services/sessions/handlers.py", line 58, in post
        sm.create_session(path=path, kernel_name=kernel_name))
      File "/usr/lib/python3.5/site-packages/tornado/gen.py", line 1008, in run
        value = future.result()
      File "/usr/lib/python3.5/site-packages/tornado/concurrent.py", line 232, in result
        raise_exc_info(self._exc_info)
      File "<string>", line 3, in raise_exc_info
      File "/usr/lib/python3.5/site-packages/tornado/gen.py", line 1014, in run
        yielded = self.gen.throw(*exc_info)
      File "/usr/lib/python3.5/site-packages/notebook/services/sessions/sessionmanager.py", line 73, in create_session
        self.kernel_manager.start_kernel(path=kernel_path, kernel_name=kernel_name)
      File "/usr/lib/python3.5/site-packages/tornado/gen.py", line 1008, in run
        value = future.result()
      File "/usr/lib/python3.5/site-packages/tornado/concurrent.py", line 232, in result
        raise_exc_info(self._exc_info)
      File "<string>", line 3, in raise_exc_info
      File "/usr/lib/python3.5/site-packages/tornado/gen.py", line 282, in wrapper
        yielded = next(result)
      File "/usr/lib/python3.5/site-packages/notebook/services/kernels/kernelmanager.py", line 87, in start_kernel
        super(MappingKernelManager, self).start_kernel(**kwargs)
      File "/usr/lib/python3.5/site-packages/jupyter_client/multikernelmanager.py", line 109, in start_kernel
        km.start_kernel(**kwargs)
      File "/usr/lib/python3.5/site-packages/jupyter_client/manager.py", line 244, in start_kernel
        **kw)
      File "/usr/lib/python3.5/site-packages/jupyter_client/manager.py", line 190, in _launch_kernel
        return launch_kernel(kernel_cmd, **kw)
      File "/usr/lib/python3.5/site-packages/jupyter_client/launcher.py", line 123, in launch_kernel
        proc = Popen(cmd, **kwargs)
      File "/usr/lib/python3.5/subprocess.py", line 950, in __init__
        restore_signals, start_new_session)
      File "/usr/lib/python3.5/subprocess.py", line 1544, in _execute_child
        raise child_exception_type(errno_num, err_msg)
    FileNotFoundError: [Errno 2] No such file or directory: '/go/bin/gophernotes
    
    opened by rkakrik 12
  • Gettting `could not determine kind of name` ZMQ related errors

    Gettting `could not determine kind of name` ZMQ related errors

    Hi @dwhitena, I ran into an issue, haven't been able to load the Go kernel yet, this might be the reason:

    ☻ go get github.com/gophergala2016/gophernotes

    github.com/gophergala2016/gophernotes/Godeps/_workspace/src/github.com/alecthomas/gozmq

    could not determine kind of name for C.ZMQ_HWM could not determine kind of name for C.ZMQ_MCAST_LOOP could not determine kind of name for C.ZMQ_RECOVERY_IVL_MSEC could not determine kind of name for C.ZMQ_SWAP

    I believe I have successfully followed all of the instructions with the exception of the messages above. gophernotes is listed under my bin directory. But when I open the gophernotes notebook, there is no Go kernel.

    Could this be the reason and, if so, how to resolve it?

    opened by carlisia 11
  • bash commands not available in the docker image

    bash commands not available in the docker image

    Playing with gophernotes from docker I realized it is not possible to e.g. do

    > !go get gopkg.in/src-d/go-git.v4
    repl.go:1:2: expected operand, found 'go'
    

    or even

    > !ls
    repl.go:1:2: undefined identifier: ls
    
    enhancement help wanted good first issue 
    opened by RafalSkolasinski 9
  • gophernotes and replace on go.mod

    gophernotes and replace on go.mod

    I'm trying to use gophernotes to test some Cosmos SDK functionality. In particular, I would like to run in a notebook this test:

    https://github.com/cosmos/cosmos-sdk/blob/main/store/iavl/store_test.go#L316

    but when I run the import:

    import (
        "github.com/cosmos/cosmos-sdk/store/cachekv"
    
        "github.com/stretchr/testify/require"
        dbm "github.com/tendermint/tm-db"
    
        tiavl "github.com/cosmos/iavl"
    
        "github.com/cosmos/cosmos-sdk/store/dbadapter"
        "github.com/cosmos/cosmos-sdk/store/gaskv"
        "github.com/cosmos/cosmos-sdk/store/iavl"
        "github.com/cosmos/cosmos-sdk/store/types"
        sdk "github.com/cosmos/cosmos-sdk/types"
    )
    

    I obtain the following error:

    error executing "/usr/local/go/bin/go build -buildmode=plugin" in directory "/Users/stepyt/go/src/gomacro.imports/gomacro_pid_3616/import_1": exit status 2

    By looking at Jupyter logs with:

    jupyter notebook --log-level DEBUG

    I receive the following: github.com/gogo/protobuf/grpc: module github.com/gogo/[email protected] found (v1.3.2), but does not contain package github.com/gogo/protobuf/grpc

    The SDK has a replace inside go.mod of the protobuf package. Can be related to this the error?

    opened by 0xstepit 0
  • not a package: ">

    not a package: "n" in n.multiply <*ast.SelectorExpr>

    type Node struct {
      value int
      next *Node
    }
    
    func (n Node) multiply(x int) int {
      return n.value * x
    }
    
    n := Node{2, nil}
    n.multiply(3)
    
    repl.go:11:1: not a package: "n" in n.multiply <*ast.SelectorExpr>
    

    However, this works:

    type Node struct {
      value int
    }
    
    func (n Node) multiply(x int) int {
      return n.value * x
    }
    
    n := Node{2}
    n.multiply(3)
    

    Versions:

    Related to #240

    opened by chbk 0
  • Import `google.golang.org/grpc` fails

    Import `google.golang.org/grpc` fails

    When importing import "google.golang.org/grpc" I get this.

    error loading plugin "/go/src/gomacro.imports/gomacro_pid_9/import_7/import_7.so": 
      plugin.Open("/go/src/gomacro.imports/gomacro_pid_9/import_7/import_7"): 
        plugin was built with a different version of package google.golang.org/grpc/metadata
    
    bug 
    opened by ChristianKniep 1
  • Dockerfile build image fail autocomplete

    Dockerfile build image fail autocomplete

    Hi there,

    I really appreciate the work done here, use the tool a lot.

    I have built a new image using the dockerfile in the root though when I am running the jupyter-console autocomplete is not working.

    Is there a chance anyone here can help me to troubleshoot this?

    Regards, Julio

    opened by MushiTheMoshi 1
  • stop notebook on error

    stop notebook on error

    Is there a way for the notebook to stop running on error? It ignores my Panic statements (other than just printing out) and even os.Exit doesn't seem to do much. Am I missing somethign?

    enhancement 
    opened by elamre 2
Releases(v0.7.5)
Owner
GopherData
Bringing together users and developers of Go data management, processing, analytics, and visualization tools.
GopherData
Go types, funcs, and utilities for working with cards, decks, and evaluating poker hands (Holdem, Omaha, Stud, more)

cardrank.io/cardrank Package cardrank.io/cardrank provides a library of types, funcs, and utilities for working with playing cards, decks, and evaluat

null 62 Dec 25, 2022
Genetic Algorithm and Particle Swarm Optimization

evoli Genetic Algorithm and Particle Swarm Optimization written in Go Example Problem Given f(x,y) = cos(x^2 * y^2) * 1/(x^2 * y^2 + 1) Find (x,y) suc

Guillaume Simonneau 26 Dec 22, 2022
k-modes and k-prototypes clustering algorithms implementation in Go

go-cluster GO implementation of clustering algorithms: k-modes and k-prototypes. K-modes algorithm is very similar to well-known clustering algorithm

e-Xpert Solutions 37 Nov 29, 2022
Probability distributions and associated methods in Go

godist godist provides some Go implementations of useful continuous and discrete probability distributions, as well as some handy methods for working

Edd Robinson 35 Sep 27, 2022
On-line Machine Learning in Go (and so much more)

goml Golang Machine Learning, On The Wire goml is a machine learning library written entirely in Golang which lets the average developer include machi

Conner DiPaolo 1.4k Jan 5, 2023
Bayesian text classifier with flexible tokenizers and storage backends for Go

Shield is a bayesian text classifier with flexible tokenizer and backend store support Currently implemented: Redis backend English tokenizer Example

Erik Aigner 152 Nov 25, 2022
Training materials and labs for a "Getting Started" level course on COBOL

COBOL Programming Course This project is a set of training materials and labs for COBOL on z/OS. The following books are available within this reposit

Open Mainframe Project 2.4k Dec 30, 2022
A curated list of Awesome Go performance libraries and tools

Awesome Go performance Collection of the Awesome™ Go libraries, tools, project around performance. Contents Algorithm Assembly Benchmarks Compiling Co

Oleg Kovalov 278 Jan 3, 2023
Deploy, manage, and scale machine learning models in production

Deploy, manage, and scale machine learning models in production. Cortex is a cloud native model serving platform for machine learning engineering teams.

Cortex Labs 7.9k Dec 30, 2022
Library for multi-armed bandit selection strategies, including efficient deterministic implementations of Thompson sampling and epsilon-greedy.

Mab Multi-Armed Bandits Go Library Description Installation Usage Creating a bandit and selecting arms Numerical integration with numint Documentation

Stitch Fix Technology 33 Jan 2, 2023
A program that generates a folder structure with challenges and projects for mastering a programming language.

Challenge Generator A program that generates a folder structure with challenges and projects for mastering a programming language. Explore the docs »

João Freitas 70 Aug 31, 2022
Gota: DataFrames and data wrangling in Go (Golang)

Gota: DataFrames, Series and Data Wrangling for Go This is an implementation of DataFrames, Series and data wrangling methods for the Go programming l

null 2.5k Jan 5, 2023
An open source embedding vector similarity search engine powered by Faiss, NMSLIB and Annoy

Click to take a quick look at our demos! Image search Chatbots Chemical structure search Milvus is an open-source vector database built to power AI ap

The Milvus Project 14.6k Jan 7, 2023
Open-source software engineering competency and career plans.

Software Engineering Competency Matrix This repository contains an "Open Competency Matrix" for Software Engineers. It includes a standard data struct

null 18 Oct 4, 2022
Example of Neural Network models of social and personality psychology phenomena

SocialNN Example of Neural Network models of social and personality psychology phenomena This repository gathers a collection of neural network models

null 7 Dec 5, 2022
Spice.ai is an open source, portable runtime for training and using deep learning on time series data.

Spice.ai Spice.ai is an open source, portable runtime for training and using deep learning on time series data. ⚠️ DEVELOPER PREVIEW ONLY Spice.ai is

Spice.ai 774 Dec 15, 2022
Versioned model registry suitable for temporary in-training storage and permanent storage

Cogment Model Registry Cogment is an innovative open source AI platform designed to leverage the advent of AI to benefit humankind through human-AI co

Cogment 2 May 26, 2022
GoPlus - The Go+ language for engineering, STEM education, and data science

The Go+ language for engineering, STEM education, and data science Summary about Go+ What are mainly impressions about Go+? A static typed language. F

GoPlus 8.3k Jan 8, 2023
Self-contained Machine Learning and Natural Language Processing library in Go

Self-contained Machine Learning and Natural Language Processing library in Go

NLP Odyssey 1.3k Jan 8, 2023