Code Monkey home page Code Monkey logo

myria-web's Introduction

A web front-end for Myria

This is a Google App Engine app.

Build Status

Dependencies

You must have the Google App Engine SDK for Python installed locally. During setup, be sure to select the option to create symbolic links to the Python utilities so that they are available from the command line.

Initial setup

  1. This project uses the UW eScience Raco project. We have configured it as a submodule. After cloning this repository, you must run:
git submodule init
git submodule update
Then setup the module as described in the [Raco README](https://github.com/uwescience/raco/blob/master/README.md).
  1. The PLY library used to parse programs in the Myria language uses a precompiled parsetab.py in the raco submodule. This file is not required, but dramatically speeds up the parser load time (which happens for every request to the app). To generate it, run
scripts/myrial examples/reachable.myl

in the raco subdirectory.

  1. Launch the local App Engine emulator. I prefer to use Google's GoogleApp EngineLauncher application (installed with the SDK), which provides a nice GUI interface to control the emulator. From the menu select Add Existing Application, and add the myria-web/appengine directory.

Alternatively, from the command line, you may launch:

dev_appserver.py /path/to/myria-web/appengine

And then point your browser at localhost:8080 to view the application.

Changing the Myria Hostname

To change the Myria instance from the default (vega), modify appengine/myria_web_main.py, changing the hostname and port variables. Changes will reflect automatically in the GAE application at localhost:8080.

Which branch to be on

There are two notable branches in the myria-web repository: master and production.

Depending on your goals (modifying latest myria-web vs running a stable version of the interface), you may wish to switch to the production branch.

Updating the code

To update the submodule to the latest from master, run this code:

git submodule update --recursive --remote

(Might also require beforehand:

git submodule init

)

Run the tests

Install the developer dependencies.

pip install -r requirements-dev.txt

Download a local copy of Google App Engine

curl -O https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.22.zip
unzip -q google_appengine_1.9.22.zip

Run

nosetests test/test_myria_down.py test/test_myria_up.py test_style.py -w appengine --with-gae --gae-lib-root=google_appengine

Run without Google App Engine

It is possible to run myria-web without a dependence on Google App Engine. Right now, myria-web uses the paste module to run the web application.

Install the developer dependencies.

pip install -r requirements-dev.txt

Do steps 1 and 2 only from Initial setup.

Finally, start the server.

cd appengine
python myria_web_main.py

Issues

The Google App Engine GUI has a Logs button that can be helpful for diagnosing issues with the Myria web app.

myria-web's People

Contributors

dhalperi avatar domoritz avatar stechu avatar jortiz16 avatar bmyerz avatar jingjingwang avatar senderista avatar radion avatar ryanmaas avatar brandonhaynes avatar ericgribkoff avatar hello-josh avatar ljorr1 avatar billhowe avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.