skip to main content

@tonyfast s notebooks

site navigation
notebook summary
title
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.
cells
24 total
12 code
state
executed in order
kernel
Python [conda env:root] *
language
python
name
conda-root-py
lines of code
218
outputs
12
table of contents
  • accessible notebook interfaces
  • automated testing
    1. using axe
  • manual testing
  • all hands on deck
  • {"kernelspec": {"display_name": "Python [conda env:root] *", "language": "python", "name": "conda-root-py"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9"}, "widgets": {"application/vnd.jupyter.widget-state+json": {"state": {}, "version_major": 2, "version_minor": 0}}, "title": "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."}
    notebook toolbar
    Activate
    cell ordering
    1

    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.

    2

    3 1 outputs.
    4

    computational notebooks and the 🏆 award winning

    Free software, open standards, and web services for interactive computing across all programming languages.

    A tagline from the official Project Jupyter home page indicating the values and reach of its technology.

    5

    Screen shot above the fold of the main Project Jupyter site

    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.

    6

    Follow me through the olds.

    7 1 outputs.

    Xerox Alto

    The Xerox Alto is a computer designed from its inception to support an operating system based on a graphical user interface (GUI) , later using the desktop metaphor. The first machines were introduced on 1 March 1973, a decade before mass-market GUI machines became available.

    xero alto

    < />
    8

    The computer mouse and interactive computing

    at the dawn of post modernity, Doug Engelbart's X-Y Position Indicator for a Display System changed the way we interact with computers.

    the first computer mouse prototype

    9 1 outputs.

    the

    Doug Englebart's Mother of all Demos presentation that changed computing forever.

    The live demonstration featured the introduction of a complete computer hardware and software system called the oN-Line System or, more commonly, NLS. The 90-minute presentation demonstrated for the first time many of the fundamental elements of modern personal computing: windows, hypertext, graphics, efficient navigation and command input, video conferencing, the computer mouse, word processing, dynamic file linking, revision control, and a collaborative real-time editor. 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.

    < /> < />
    10

    50 Years Later, We’re Still Living in the Xerox Alto’s World

    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.

    a network diagram indicating the broad influence of the xerox alto

    11 1 outputs.

    Mathematica's computational essays

    The notebook interface was the brainchild of Theodore Gray, who was inspired while working with an old Apple code editor. Where most programming environments either had you run code one line at a time, or all at once as a big blob, the Apple editor let you highlight any part of your code and run just that part. Gray brought the same basic concept to Mathematica, with help refining the design from none other than Steve Jobs. The notebook is designed to turn scientific programming into an interactive exercise, where individual commands were tweaked and rerun, perhaps dozens or hundreds of times, as the author learned from the results of their little computational experiments, and came to a more intimate understanding of their data.

    mathematica version 2

    12

    computer programning for everybody

    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.

    13

    Interactive Python

    ANNOUNCE IPython, a new interactive shell for python.

    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
    14

    2015 Project Jupyter The Big Split

    Jupyter is like IPython, but language agnostic

    <abbr title="julia">Ju</abbr>
    <abbr title="python">py</abbr>
                       te
    <abbr title="R">r</abbr>
    

    jupyter enables polyglot programming in many languages at the same time.

    15 1 outputs.

    2017 ACM Software System Award

    jupyter is recognized as a critical systems software.

    Jupyter has also gained wide industry adoption. Since 2015, Jupyter-based products have been released by several companies including Google (Cloud DataLab), Microsoft (AzureML, HDInsight), Intel (Trusted Analytics Platform), and IBM (IBM Watson Studio). Bloomberg and Anaconda Inc. have partnered with Project Jupyter to develop the next-generation web interface, JupyterLab.

    Similarly, there exist multiple client applications in addition to the Jupyter Notebook and JupyterLab to create and execute notebooks, each with its own use case and focus: the open source nteract project develops a lightweight desktop application to run notebooks; CoCalc, a startup founded by William Stein, the creator of SageMath, offers a web-based client with real-time collaboration that includes Jupyter alongside SageMath, LaTeX, and tools focused on education; and Google now provides Colaboratory, another web notebook frontend that runs alongside the rest of the Google Documents suite, with execution in the Google Cloud.

    16 1 outputs.

    jupyter is in good company

    Project Jupyter wins the 2017 ACM Software System Award, sharing a similar prestige as the Xerox Alto 30 years later.

    17 1 outputs.

    there many notebook implementations and user interfaces

    the notebook is a style of interface, collections of input forms and outputs repeated to weave a narrative and tangle code. there are open source and closed source options, along with language specific and agnostic implementations.

    with over 10 million notebooks , there are now large scale studies of notebook and literate computing interfaces:

    < />
    18 1 outputs.

    notebooks and cells are increasingly more common forms

    Observable's description of notebooks and cells.
    Observable is a platform for exploring data and code, visually, live in your browser. And the central component of that platform is what we call a "notebook": an interactive, editable document defined by chunks of code called "cells". Observable notebooks help you explore live data, prototype visualizations, make interactive art, understand algorithms, collaborate on reports, and much more. Join Anjana Vakil, Observable Developer Advocate, in diving into Observable and understanding the basic mechanics of working with notebooks & cells.
    19 1 outputs.

    WCAG

    The Web Content Accessibility Guidelines (WCAG) are part of a series of web accessibility guidelines published by the Web Accessibility Initiative (WAI) of the World Wide Web Consortium (W3C), the main international standards organization for the Internet. They are a set of recommendations for making Web content more accessible, primarily for people with disabilities—but also for all user agents, including highly limited devices, such as mobile phones.

    wcag drafts

    • May 5, 1999: WCAG 1.0 is born. It included 14 guidelines, ranging from the need to provide text equivalents to considering clarity and simplicity on the web. Each guideline had between one and 10 supporting checkpoints.
    • December 11, 2008: WCAG 2.0 broadens scope and offers the four principles. The early 2000s were years of unbelievable changes in technology, so WCAG evolved to keep up. WCAG 2.0 was an incredible follow-up to its predecessor and was intended to be applied to almost all things digital (including documents and apps). WCAG 2.0 also introduced the four guiding principles of accessibility, stating content must be perceivable, operable, understandable, and robust, supported by success criteria for meeting those principles. WCAG 2.0 reigned as the gold standard for a long time.
    • June 5, 2018: WCAG 2.1 builds on but does not replace WCAG 2.0. The latest version of WCAG is backwards-compatible with the previous, which means if you comply with WCAG 2.1, you automatically comply with WCAG 2.0 — great news for website and app creators. WCAG 2.1 came as a highly-welcomed update, after the decade-old WCAG 2.0 could no longer completely account for advancements in technology and web use. The new WCAG 2.1 standards include several success criteria for improving web accessibility on mobile devices, as well as for people with low vision and cognitive disabilities.
    20

    accessible notebook interfaces

    recently, Jupyter developers were able to remove accessibility violations caught be axe. read the blog post .

    image.png

    21 1 outputs.

    automated testing

    axe core 's is the open source industry standard for accessibility testing. caveat emptor...

    With axe-core , you can find on average 57% of WCAG issues automatically . Additionally, axe-core will return elements as "incomplete" where axe-core could not be certain, and manual review is needed.

    < />

    using axe

    < /> < />
    22

    manual testing

    nothing will replace the experiences of disabled people! 🙌 jenn and isabela for making sure the testers got paid!

    screen shot of notebooks for all issue

    23 1 outputs.

    all hands on deck

    we're responsible for accessible corridors and y'all are responsible accessible rooms. jupyter can do a lot, which means you can do to. writing accessible notebooks means consistenty adhering to standard patterns that will make information most usable by assist tech. jupyter is only responsible the pixels it makes, less the ones your make.

    1. have fun learning how to write accessible notebooks
    2. explore the world of accessibility resources [^resources]
    3. listen to the experiences of disabled people
    4. abide standards
    5. join our jupyter accessibility community meetings

    [^resources]: * https://www.technica11y.org/ * https://a11y.coffee/dig-in/ * https://www.a11yproject.com/

    < />
    24 1 outputs.