A notebook interface is a virtual collaborative environment which contains computer code and rich text elements. Notebook documents are human-readable documents with the analysis description and the results together with the executable documents which can be run to perform data analysis. These documents can be saved as files, checked into revision control just like code, and freely shared. They run on any platform, thanks to their browser-based user interface. In essence, they are a virtual notebook environment used for literate programming.