a sprint through history toward computional notebooks
description
history helps us understand science and software. in this presentation, we see how Project Jupyter and computational notebooks interfaces fit into their larger context of computing history.
# a sprint through history toward computional notebooks
history helps us understand science and software. in this presentation, we see how Project Jupyter and computational notebooks interfaces fit into their larger context of computing history.
we'll begin with user interfaces at the dawn of post modernity then trawl through the early-web, then we'll run smack into the modern web, and finally landing in inaccessible pandemic hellscape that manufactures disability.
history helps us understand science and software. in this presentation, we see how Project Jupyter and computational notebooks interfaces fit into their larger context of computing history.
we'll begin with user interfaces at the dawn of post modernity then trawl through the early-web, then we'll run smack into the modern web, and finally landing in inaccessible pandemic hellscape that manufactures disability.
## computational notebooks and the 🏆 award winning [Project Jupyter]
<figure markdown>
<blockquote cite="http://jupyter.org/">Free software, open standards, and web services for interactive computing across all programming languages.</blockquote>
<figcaption markdown>
A tagline from the official [Project Jupyter] home page indicating the values and reach of its technology.
</figcaption>
</figure>
[Project Jupyter]: http://jupyter.org/ "the official project jupyter homepage."
<figure markdown>
[![Screen shot above the fold of the main Project Jupyter site](attachment:3216dc14-c95e-4009-9d4d-5c722fee71b5.png "Project Jupyter's logo surrounded by logos of programming languages like Python, R, Julia, Lua, Fortran, any many more")][Project Jupyter]
<figcaption markdown>
Jupyter is a [critical software system](https://awards.acm.org/software-system) for interactive computing that makes it possible __read and write code in many languages__. Most of we find Python and Markdown, but we are not limited to these languages.
</figcaption>
</figure>
[Project Jupyter]: http://jupyter.org/ "the official project jupyter homepage."
12
Jupyter is a
critical software system
for interactive computing that makes it possible
read and write code in many languages
. Most of we find Python and Markdown, but we are not limited to these languages.
## [The computer mouse and interactive computing](https://www.sri.com/hoi/computer-mouse-and-interactive-computing/)
<figure markdown>
<figcaption markdown>
at the dawn of post modernity, Doug Engelbart's <b><q>[X-Y Position Indicator for a Display System]</q></b> changed the way we interact with computers.
</figcaption>
![the first computer mouse prototype](https://www.sri.com/wp-content/uploads/layerslider/History-of-Innovation-Slider/mouse.jpg)
</figure>
[X-Y Position Indicator for a Display System]: https://patentimages.storage.googleapis.com/7d/13/7e/3fd1de4c37ed12/US3541541.pdf
## the [mother of all demos]<figuremarkdown><figcaptionmarkdown>DougEnglebart's [Mother of all Demos] presentation that changed computing forever.</figcaption><iframewidth="629"height="472"src="https://www.youtube.com/embed/yJDv-zdhzMY"title="The Mother of All Demos, presented by Douglas Engelbart (1968)"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"allowfullscreen></iframe></figure>>ThelivedemonstrationfeaturedtheintroductionofacompletecomputerhardwareandsoftwaresystemcalledtheoN-LineSystemor,morecommonly,NLS.The90-minutepresentationdemonstratedforthefirsttimemanyofthefundamentalelementsofmodernpersonalcomputing:<b>windows,hypertext,graphics,efficientnavigationandcommandinput,videoconferencing,thecomputermouse,wordprocessing,dynamicfilelinking,revisioncontrol,andacollaborativereal-timeeditor.</b>Engelbart's presentation was the first to publicly demonstrate all of these elements in a single system. The demonstration was highly influential and spawned similar projects at Xerox PARC in the early 1970s. The underlying concepts and technologies influenced both the Apple Macintosh and Microsoft Windows graphical user interface operating systems in the 1980s and 1990s. [motherofalldemos]:https://en.wikipedia.org/wiki/The_Mother_of_All_Demos"the wiki page for the mother of all demos"[moadtranscript]:https://github.com/atduskgreg/MoAD-Transcript"a repository hosting the mother of all demos transcripts"
## [50 Years Later, We’re Still Living in the Xerox Alto’s World]
<figure markdown>
<figcaption markdown>
the impact of the Xerox Alto still ripples through the world as we build shiners systems than the mother of all demos. the Alto was a glimpse into the future of personal computing.
</figcaption>
[![a network diagram indicating the broad influence of the xerox alto](attachment:ac0223ba-02c2-44e8-a15b-5a430f9a35b6.png "the xerox alto had a rippling effect through computing that influences personal computing, html, email, word processing and more.")](https://twitter.com/arbesman/status/1631267214283218950)
</figure>
[50 Years Later, We’re Still Living in the Xerox Alto’s World]: https://spectrum.ieee.org/xerox-alto#toggle-gdpr
the impact of the Xerox Alto still ripples through the world as we build shiners systems than the mother of all demos. the Alto was a glimpse into the future of personal computing.
## Mathematica's computational essays<figuremarkdown><blockquotecite="https://www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676/"markdown>ThenotebookinterfacewasthebrainchildofTheodoreGray,whowasinspiredwhileworkingwithanoldApplecodeeditor.Wheremostprogrammingenvironmentseitherhadyouruncodeonelineatatime,orallatonceasabigblob,theAppleeditorletyouhighlightanypartofyourcodeandrunjustthatpart.GraybroughtthesamebasicconcepttoMathematica,withhelprefiningthedesignfromnoneotherthanSteveJobs.__Thenotebookisdesignedtoturnscientificprogrammingintoaninteractiveexercise,whereindividualcommandsweretweakedandrerun,perhapsdozensorhundredsoftimes,astheauthorlearnedfromtheresultsoftheirlittlecomputationalexperiments,andcametoamoreintimateunderstandingoftheirdata.__</blockquote>![mathematicaversion2](https://winworldpc.com/res/img/screenshots/Mathematica%202.1%20-%20About.png"a screenshot of mathematica version 2")</figure>
## [computer programning for everybody][cp4e]
[cp4e] is the darpa proposal that contributed to early python development.
[cp4e]: https://www.python.org/doc/essays/cp4e/
it begins ...
> In the seventies, Xerox PARC asked: <b>"Can we have a computer on every desk?"</b> We now know this is possible, but those computers haven't necessarily empowered their users. Today's computers are often inflexible: the average computer user can typically only change a limited set of options configurable via a "wizard" (a lofty word for a canned dialog), and is dependent on expert programmers for everything else.
and continues ...
> We compare <b>mass ability to read and write software with mass literacy</b>, and predict equally pervasive changes to society. Hardware is now sufficiently fast and cheap to make <b>mass computer education possible</b>: the next big change will happen when most computer users have the knowledge and power to create and modify software.
cp4e
is the darpa proposal that contributed to early python development.
it begins ...
In the seventies, Xerox PARC asked:
"Can we have a computer on every desk?" We now know this is possible, but those computers haven't necessarily empowered their users. Today's computers are often inflexible: the average computer user can typically only change a limited set of options configurable via a "wizard" (a lofty word for a canned dialog), and is dependent on expert programmers for everything else.
and continues ...
We compare
mass ability to read and write software with mass literacy, and predict equally pervasive changes to society. Hardware is now sufficiently fast and cheap to make
mass computer education possible: the next big change will happen when most computer users have the knowledge and power to create and modify software.
## Interactive Python
![ANNOUNCE IPython, a new interactive shell for python.](attachment:4f5ae30e-5d9b-4cf2-a284-b00854f3272f.png "fernando perez's first announcement about ipython in 2001.")
[ipython]: https://mail.python.org/pipermail/python-list/2001-December/093408.html
[IPython] grew to have a lot of features in a monolith
*an interactive shell
*a REPL protocol
*a notebook document fromat
*a notebook document conversion tool
*a web-based notebook authoring tool
*tools for building interactive UI (widgets)
*interactive parallel Python based on the above REPL protocol
## 2015 Project Jupyter The Big Split
<q cite="https://blog.jupyter.org/the-big-split-9d7b88a031a7">Jupyter is like IPython, but language agnostic</q>
```html<abbrtitle="julia">Ju</abbr><abbrtitle="python">py</abbr>
te
<abbrtitle="R">r</abbr>```
jupyter enables [polyglot programming] in many languages at the same time.
[polyglot programming]: https://gist.github.com/fperez/5b49246af4e340c37549265a90894ce6
## jupyter is in good company<figuremarkdown><figcaptionmarkdown>ProjectJupyterwinsthe2017ACMSoftwareSystemAward,sharingasimilarprestigeastheXeroxAlto30yearslater.</figcaption><iframesrc="https://en.m.wikipedia.org/wiki/ACM_Software_System_Award#Recipients"height="600"width="100%"></iframe></figure>
### there many notebook implementations and user interfaces<figuremarkdown><figcaptionmarkdown>thenotebookisastyleofinterface,collectionsofinputformsandoutputsrepeatedtoweaveanarrativeandtanglecode.thereareopensourceandclosedsourceoptions,alongwithlanguagespecificandagnosticimplementations.</figcaption><iframesrc="https://en.m.wikipedia.org/wiki/Notebook_interface#Free/open-source_notebooks"height="600"width="100%"></iframe></figure>withover[10millionnotebooks][nbestimate],therearenowlargescalestudiesofnotebookandliteratecomputinginterfaces:*[DesignandUseofComputationalNotebooks](https://adamrule.com/files/dissertation/rule_dissertation.pdf)*[MappingtheLandscapeofLiterateComputing](https://pure.au.dk/ws/files/173226224/PPIG_2019_camera_ready.pdf)*[TheStoryintheNotebook:ExploratoryDataScienceusingaLiterateProgrammingTool](https://marybethkery.com/projects/Verdant/Kery-The-Story-in-the-Notebook-Exploratory-Data-Science-using-a-Literate-Programming-Tool.pdf)[nbestimate]:https://github.com/parente/nbestimate/blob/master/estimate.ipynb"a github project that estimates the number of notebooks on github"
## notebooks and cells are increasingly more common forms<figuremarkdown><figcaption>Observable's description of notebooks and cells.</figcaption><blockquotecite="https://observablehq.com/@observablehq/notebooks-cells">Observableisaplatformforexploringdataandcode,visually,liveinyourbrowser.And<b>thecentralcomponentofthatplatformiswhatwecalla"notebook":aninteractive,editabledocumentdefinedbychunksofcodecalled"cells".</b>Observablenotebookshelpyouexplorelivedata,prototypevisualizations,makeinteractiveart,understandalgorithms,collaborateonreports,andmuchmore.JoinAnjanaVakil,ObservableDeveloperAdvocate,indivingintoObservableandunderstandingthebasicmechanicsofworkingwithnotebooks&cells.</blockquote></figure><iframewidth="560"height="315"src="https://www.youtube.com/embed/M1xMRkb89oM"title="Observable: Notebooks & Cells"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"allowfullscreen></iframe>
## accessible notebook interfaces
<figure markdown>
<figcaption markdown>
recently, Jupyter developers were able to remove accessibility violations caught be axe. read the [blog post].
</figcaption>
![image.png](attachment:da0e9339-76c6-4ddf-8695-4c804430a227.png "axe auditting results comparing the vioations before remediation and afterwards.")
</figure>
[blog post]: https://blog.jupyter.org/improving-the-accessibility-of-jupyter-6c695db518d3
### automated testing<figuremarkdown><figcaptionmarkdown>[axecore][axe]'s is the open source industry standard for accessibility testing.caveatemptor...</figcaption>>With[axe-core][axe],youcanfind**onaverage57%ofWCAGissuesautomatically**.Additionally,axe-corewillreturnelementsas"incomplete"whereaxe-corecouldnotbecertain,andmanualreviewisneeded.</figure>[axe]:https://github.com/dequelabs/axe-core#### using axe*https://github.com/dequelabs/axe-core*[firefoxaxeextension]*[chromeaxeextension][firefoxaxeextension]:https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/[chromeaxeextension]:https://chrome.google.com/webstore/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd
### manual testing*[WCAG](https://www.w3.org/WAI/standards-guidelines/wcag/https://www.w3.org/WAI/standards-guidelines/wcag/)
*[ACT rules](https://www.act.org/content/act/en/terms-of-use/rules.htmlhttps://www.act.org/content/act/en/terms-of-use/rules.html)
*[WAI patterns](https://www.w3.org/WAI/ARIA/apg/patterns/https://www.w3.org/WAI/ARIA/apg/patterns/)
<figure markdown>
<figcaption markdown>
nothing will replace the experiences of disabled people! 🙌 jenn and isabela for making sure the testers got paid!
</figcaption>
![screen shot of notebooks for all issue](attachment:749a91b0-2e4c-4b79-915b-1450222005ae.png "the outcomes of the notebooks for all user tests expressed as github issues")
</figure>
[Nothing about us without us]: https://en.wikipedia.org/wiki/Nothing_about_us_without_us
## all hands on deckwe're responsible for accessible corridors and y'allareresponsibleaccessiblerooms.jupytercandoalot,whichmeansyoucandoto.writingaccessiblenotebooksmeansconsistentyadheringtostandardpatternsthatwillmakeinformationmostusablebyassisttech.jupyterisonlyresponsiblethepixelsitmakes,lesstheonesyourmake.1.havefunlearninghowtowriteaccessiblenotebooks1.exploretheworldofaccessibilityresources[^resources]1.listentotheexperiencesofdisabledpeople1.abidestandards1.joinour[jupyteraccessibilitycommunitymeetings][^resources]:*https://www.technica11y.org/*https://a11y.coffee/dig-in/*https://www.a11yproject.com/[jupyteraccessibilitycommunitymeetings]:https://github.com/jupyter/accessibility/