Try NTERACT
In [ ]:
from IPython.display import YouTubeVideo
YouTubeVideo('xU_xdogXFeE', width=600, height=400)
Out[ ]:
In [ ]:
from IPython.display import YouTubeVideo
YouTubeVideo('3FmBJ847_y8', width=600, height=400)
Out[ ]:
Notebooks.¶
A rendered REPL combining
REPL (Read–Eval–Print Loop)
- Code
- Logs
- Documentation
- Execution Results
Useful for
- Iterative Development
- Sharing Results
- Integrating Various API Calls
Wins.¶
- Shareable
- Easy to Read
- Documentation with Code
- Outputs as Reports
- Familiar Interface
- Multi-Language
Notebooks: A REPL Protocol + UIs¶
Exploring and Prototyping.¶
The Good.¶
Notebooks have several attractive attributes that lend themselves to particular development stories:
- Quick iteration cycles
- Expensive queries once
- Recorded outputs
- Easy to modify
The Bad.¶
But they have drawbacks, some of which kept Notebooks from being used in wider development stories:
- Lack of history
- Difficult to test
- Mutable document
- Hard to parameterize
- Live collaboration
Notebooks are good integration tools.¶
- Notebooks are good at connecting pieces of technology and building a result or taking an action with that technology.
- They're unreliable to reuse when complex and when they have a high branching factor.
Some development guidelines.¶
- Keep a low branching factor
- Short and simple is better
- Keep to one primary outcome
- (Try to) Leave library functions in libraries
- Move complexity to libraries