Git Product home page Git Product logo

cesium_web's People

Contributors

acrellin avatar alejandrogarciasalas avatar bnaul avatar stefanv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cesium_web's Issues

Properly handle incomplete tasks

Add new table for in progress tasks, only create entry for featuresets/models/predictions once that job is successfully completed. For now we just add the full entry to the DB and if the job fails it's orphaned.

Document Docker build process

Could just be internally. Mostly I just don't like that I don't know how to do it ๐Ÿ˜ฌ .

Would it be crazy to try to automate this via Travis...?

Modify CI to accommodate dependent builds

When a PR is made against cesium (the library), the dependent build server starts a cesium_web build, and sets two variables: TRIGGERED_FROM_REPO and TRIGGERED_FROM_SHA.

We should modify the cesium_web build to pull its version of cesium from the commit specified in these variables (if available), otherwise from PyPi.

Investigate `celery` slowness and/or look into replacements

Since reorganizing celery tasks to be more easily chained/used in the web front end, performance has gotten horrible: the EEG example takes ~20s to featurize with celery as opposed to <1s without.

Could be:

  1. Bug in celery involving chains/chords
  2. Something inefficient about my implementation (but what really changed...?)
  3. celery is bad and it should feel bad

Use multiple workers

Right now we hard-code a single 1-thread worker; should use the # of cores or something along those lines.

SciPy Talk Milestones

  • Tooltips / documentation / info
  • Verify data management / upload
    • Empty file
    • Improperly formatted header
    • Invalid zipfile
    • Mismatched header/zipfile
  • Project / login info in sidebar (move from top)
  • Data tab
    • Transformations (train/test split)
  • Features tab
    • List in-progress tasks
    • Organize features tab
      • Separate out Lomb Scargle features
    • Custom features upload
  • Models tab
    • Models tab hyperparameter optimization
  • Predict tab
    • Display prediction results
    • Export as CSV
  • Demo Docker container
  • Plots
  • Display notification for successful / failed tasks
  • Look into similar open source projects
  • Miscellaneous UI fixes
    • Update project should create when no projects exist (@stefanv)
    • Remove Debug columns
    • Add Dataset Delete, fix Featureset Delete
    • Add Finished column (already stored as model.finished), or some kind of In Progress label
    • Allow prediction from featureset (w/o recomputing)

Always use fixture data in frontend tests

Right now, fixture data is created before each test, but it isn't necessarily selected on the front end; I think we just keep whatever the default (first) value is.

Actual example of why this is bad: a test was added that checks that a 0-feature featureset can't be created; #71 broke this, and so when running those tests that featureset gets created and then also used for model-building tests. So every single test after that one fails, even though actually everything is working properly. Kind of defeats the purpose of using fixture data at all.

I assume this is an easy fix but have no idea how form selections work in React...cc @acrellin .

Error connecting to AQMP ([Errno 111] Connection refused.)

When trying to use the docker image, I'm getting the following:

ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbit:5672//: [Errno 111] Connection refused.

image

The log file for Celery looks like this:

[2016-07-15 14:55:52,141: WARNING/MainProcess] /usr/local/lib/python3.4/site-packages/celery/apps/worker.py:161: CDeprecationWarning: 
Starting from version 3.2 Celery will refuse to accept pickle by default.
2016-07-15T14:55:52.141976247Z 
The pickle serializer is a security concern as it may give attackers
the ability to execute any command.  It's important to secure
your broker from unauthorized access when using pickle, so we think
that enabling pickle should require a deliberate action and not be
the default choice.
2016-07-15T14:55:52.142135760Z 
If you depend on pickle then you should set a setting to disable this
warning and to be sure that everything will continue working
when you upgrade to Celery 3.2::
2016-07-15T14:55:52.142188897Z 
    CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml']
2016-07-15T14:55:52.142217264Z 
You must only enable the serializers that you will actually use.
2016-07-15T14:55:52.142251624Z 
2016-07-15T14:55:52.142265507Z 
  warnings.warn(CDeprecationWarning(W_PICKLE_DEPRECATED))
[2016-07-15 14:55:52,289: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbit:5672//: [Errno 111] Connection refused.
Trying again in 2.00 seconds...
2016-07-15T14:55:52.290243145Z 
[2016-07-15 14:55:54,302: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbit:5672//: [Errno 111] Connection refused.
Trying again in 4.00 seconds...
2016-07-15T14:55:54.302881711Z 
[2016-07-15 14:55:58,318: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbit:5672//: [Errno 111] Connection refused.
Trying again in 6.00 seconds...
2016-07-15T14:55:58.318454238Z 
[2016-07-15 14:56:05,622: WARNING/MainProcess] celery@18946890287d ready.

It almost looks like the initial connection errors occur while the rabbit image is booting, and that error is carried through to when I try to generate features.

Add table creation to `tools/db_create.sh`

Currently the tables are only added by tools/db_drop.py. It would make a lot more sense to have them also be added in db_create.sh so that that's a self-contained operation.

Add proper README.md

Should include

  • What is the project: short description of purpose
  • License notice (actual license is in COPYING)
  • Installation instructions from packages
  • Installation instructions from source

Remove nested Celery tasks

Currently we call other Celery tasks from within celery_tasks.featurize_task; this is a bad idea and cause an exception starting in Celery 3.2.

Option 1) Microservice that monitors launches new tasks in subprocesses + monitors them
Option 2) Chained Celery tasks (chord to accumulate?)

In Chrome, incorrect behavior after creating new project

screenshot from 2016-07-27 11 10 58

The newly created project is not selected, and this message (with a square?) is displayed when it shouldn't be.

Console shows Uncaught TypeError: Cannot convert undefined or null to object which is raised during throw err; in

      var nextState = state;
      var nextError = void 0;
      try {
        nextState = reducer(state, action);
      } catch (err) {
        nextError = err.toString();
        if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && typeof window.chrome !== 'undefined') {
          // In Chrome, rethrowing provides better source map support
          setTimeout(function () {
            throw err;
          });
        } else {
          console.error(err);
        }
      }

Works fine in Firefox.

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.