#Beaker - the data scientist's laboratory
Beaker is a code notebook that allows you to analyze, visualize, and document data using multiple programming languages. Beaker's plugin-based polyglot architecture enables you to seamlessly switch between languages in your documents and add support for your favorite languages that we've missed.
Beaker is both a server that you can run in the cloud, an application that you can download and run, and a Docker container that you can run anywhere.
This page is for developers. If you want to use or learn more about Beaker, see the home page.
#Screenshots
#Build, test, and run instructions
See the page for your platform for how to build from source: Ubuntu, Mac, Windows, and Docker. We use gradle to compile the project.
Say cd test; ./runner
to run the end-to-end tests with Protractor.
To enable the debug menu, add the following to your beaker.pref.json
file:
"notebook-app-menu-plugins": ["./plugin/menu/debug.js"]
##Presentation and Demo on YouTube
##Language support
We currently provide support for Python, R, Julia, Groovy, Ruby, Java, Scala, Kdb, Clojure, JavaScript, HTML, Markdown, and LaTeX.
Beaker supports autotranslation of variables between languages. For example, you can read and process some data in Python, model it with R, and then turn that into an interactive visualization with Javascript.
##Architecture
Beaker is primarily composed of a Java server and a Javascript client. There are plugins for each language, and interaction plugins as well. The architecture and the organization of the source is code is covered in the Architecture wiki.
Plugin specifications: Evaluator plugins, Menu plugins, Output display plugins
##Open source Beaker's full source code and documentation is available under the Apache 2.0 license. Beaker's sharing feature uses a server with its own repository.
##Contributing
We welcome developers to extend and improve Beaker in ways that can benefit everyone. In order for us to accept your code or pull request, we need for you to fill out and send back to us a signed copy of the Contributor License Agreement.
We're also looking to expand our full-time, NYC-based engineering team by two positions. Especially high priority is our need for a front-end web developer, but also hiring full-stack.