integrate with IPython web notebook
Really may be a separate project.
Allow blockd3 to be used in IPython. Should require changes to IPython's notebook.js and cell.js and probably textcell.js
SvgCell
nice front-end stuff, sometimes just for documentation, sometimes for frontend/backend modification of the thing itself. maps. a target for d3 stuff. whatever.
- enabler: http://code.google.com/p/svg-edit/
- representation: XML
- challenges: there probably isn't a good way to represent the state of the javascript environment in a running kernel: thus, when you reopen a notebook, the current DOM state would not be accurate unless you run the right javascript cells again
BlocklyCell
initially, generating python code would be money... i think it would be pretty easy, and you can inject the other variables and procedures in the current kernel scope into the blockly document. adding a nice model of requests.py would make a lot of the data acquisition problems i have been experiencing trivial.
on the js side, the blockd3 stuff would be good here as well: SvgCells would be injected directly into the space, to give you a handy place from which to start.
- enabler: Blockly
- representation: XML
- challenges:
-
you could transform blockly into raw python, but probably not the reverse -
blockly needs a lot of real estate, so editing might become a modal thing. -
storing non-blockly stuff twice (and having it not be typed in the python) could be a challenge... what happens to the blockly when you change another cell (e.g. destroying a variable or changing it's type)
SpreadsheetCell
Already wanted to do this anyway.
- enabler: https://github.com/mleibman/SlickGrid
- representation: list of lists? JSON? Numpy Array (ahhhh)
- challenges: probably nothing! should just work!
TangleDownCell
shameless self-promotion aside, reactive, model-based documentation would be great to add high-level insight to a notebook. real constraints that can be evaluated server-side would be mind blowing, alleviating my initial frustration with a pithy representation of bidrectional systems.
- enabler: https://github.com/bollwyvl/TangleDown
- representation: markdown
- challenges: never finished this (if it can be finished)... and was never happy with the representaiton
ControlCell
sliders and knobs, bound to variables? yes please
- enabler: dunno... maybe start with jquery ui (it's already there)
- challenges: dunno yet, just thought of it