Git Product home page Git Product logo

janus's People

Contributors

acrule avatar wddlz avatar

Stargazers

 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

janus's Issues

Update gif in README

Update the gif once we are ready for a formal 0.1 release, (i.e., for the pilot test).

Create Bug/Feature report button

Enable users to leave short notes in the Jupyter interface about bugs or interesting behaviors. We should also be able to see what comments they have left right from the interface too, that way it is easy to pull up when we are doing their interview.

Compute Cell metadata for database

For the deployment, we may want to get information from users about their notebook, without actually getting the content of their notebook. We could do this by duplicating the database, calculating multiple new columns in the cell table based on the cell content, and then deleting the content column. For example, we may want to know:

  • markdown or code cell
  • lines of code / words of markdown / lines of comments / num of headers
  • num of functions, classes

Consider only tracking changes to unexecuted cells on notebook save

Currently we look for changes to unexecuted cells every time the code-mirrior changes. This is so we can track changes in the notebook to cells that were never executed. However, these changes only matter if the notebook is saved, so we should probably wait until a save event to look for changes to unexecuted cells that we should track.

Create summary marker for unnamed cell version

The list of potential cell versions can get quite long. We likely want to show only the last few versions (say 5) and have a summary marker (e.g. "+6") to show when there are more versions to be viewed.

Fix initial selection of version marker

When cell versions are initially shown, a random (or just the first?) version is selected that may not reflect the version of the cell that is actually being shown in the notebook.

Float History Viewer scrollbar

Right now it is hard to use the scrollbar if you want to look at changes that occur near the end of the notebook. We could float the scrollbar so users can look at a later part of the notebook but still have the scrollbar be visible so they can scroll back and forth to see the changes there

Log when user interacts with Janus

I think we want to track

  • hides/unhides cells, inputs, or outputs
  • looks at hidden cells, inputs, or outputs (essentially anytime the sidebar updates)
  • shows or hides cell versions
  • changes version
  • opens the notebook history

Issue running janus for the first time

Hi,
I've been trying to run Janus but there seems to be some dependency issue.
I've followed the README to install Janus.

TypeError: Jupyter.notebook.metadata.janus is undefined Stack trace: updateHistoryUI@http://localhost:8888/nbextensions/janus/history.js?v=20180301162051:158:13 renderJanusButtons@http://localhost:8888/nbextensions/janus/ui.js?v=20180301162051:206:9 renderJanusUI@http://localhost:8888/nbextensions/janus/ui.js?v=20180301162051:216:9 loadExtension@http://localhost:8888/nbextensions/janus/main.js?v=20180301162051:56:9 load_extension/</<@http://localhost:8888/static/notebook/js/main.min.js?v=6a166b31c5a20f809e44ec2d50e40412:12408:41 execCb@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1690:24 check@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:865:43 enable/</<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1140:29 bind/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:131:20 emit/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1190:21 each@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:56:31 emit@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1189:17 check@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:940:25 enable/</<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1140:29 bind/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:131:20 emit/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1190:21 each@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:56:31 emit@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1189:17 check@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:940:25 enable/</<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1140:29 bind/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:131:20 emit/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1190:21 each@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:56:31 emit@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1189:17 check@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:940:25 enable/</<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1140:29 bind/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:131:20 emit/<@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1190:21 each@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:56:31 emit@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1189:17 check@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:940:25 enable@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1177:17 init@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:783:21 callGetModule@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1204:17 completeLoad@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1583:21 onScriptLoad@http://localhost:8888/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce:1711:21 require.js:900:37

Enable multiple sidebars to be open at once

This will be a significant rewrite, but we should consider letting users have multiple sidebars open at once. Imagine an interaction similar to Google Docs Comments where we can stack each of the sidebars and move them up or down based on what the user selects. Users should be able to:

  • open and close individual sidebars by clicking on hidden cell, code, and output markers
  • move between sidebars by clicking on them
  • sidebars should dynamicly move up and down based on what other sidebars are in focus

Overlap of Version markers and Hidden Output Marker

If a user is looking at different versions and has collapsed the output of a cell, the hidden output marker and the version markers overlap.

Two potential solutions:

  1. Always float the hidden output marker to the extreme right and have other markers to the left of it.
  2. Move the version markers up to the top of the cell, looking more like tabs, as in http://marybethkery.com/Variolite/

Get names for Hidden Cells in History Viewer

It would be nice to track the names users assign to their groups of hidden cells so that we can show these names in the History Viewer, but this will take additional tracking code, so may not be a top priority.

Hide Cells in the Notebook History Viewer

Right now the history viewer does not reflect which cells are hidden in the notebook. We should be able to run the same code we use in the main notebook to create "placeholders" for hidden cells, and even enable hidden cell preview using a detailed tooltip, but I don't think we want users to be able to click these placeholders to open the cells in an embedded sidebar.

Remove Sidebar.markerPostion?

We often (if not always) need to recalculate markerPosition based on marker type. This occurs just as we show or move the sidebar to ensure it is positioned correctly. We may just be better off calculating all positioning based on Sidebar.marker rather than trying to pass the markerPosition variable around.

Add example notebook

Put an example notebook in the repository so users can more easily see the benefit of using Janus.

Ensure saved cell versions are different

Some saved cell versions seem to have the exact same source and outputs, making them equivalent for our purposes. These should not be saved as separate versions. Perhaps it is an issue with the timing of the saving of the cell, either before or after cell execution when changes have or have not taken place because the execution yet.

Collapse Icon

New icon that better represents the collapsing/folding of a cell

Toggle UI for Show / Hide Cells, Inputs, Outputs?

Do we want to toggle the Menu UI text so that it reads "Hide Cells" or "Show Cells" depending on the visibility of the selected cell?

We could similarly update the UI buttons to either have different icons or (more consistently) just to change color.

Track cell visibility in notebook history

We don't show the history of items being hidden or shown. We could likely include a couple new columns in the cell database table that track cell hidden, output hidden, and input hidden. We could then use these to reconstruct each visible state of the notebook.

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.