Ideally, we want to ‘do’ data science in ways that are ‘literate’.
The best programs are written so that computing machines can perform them quickly and so that human beings can understand them clearly. A programmer is ideally an essayist who works with traditional aesthetic and literary forms as well as mathematical concepts, to communicate the way that an algorithm works and to convince a reader that the results will be correct. ~ Knuth (1996)
What we want:
In an ideal world, these are the same file…
Hint: it’s more than just one thing…
Browser + JupyterLab + Markup == Tangled, Woven code in (m)any languages
Coding in JupyterLab has a number of advantages over ‘point-and-click’:
If we can’t explain it simply enough that a computer can do it, perhaps we don’t actually understand it?
… a technology that enables the creation of virtual environments from a single physical machine, allowing for more efficient use of resources by distributing them across computing environments.
Source: Susnjara and Smalley (2025)
Both do the same thing: separate the platform from the hardware, but they do this in defferent ways for different reasons.
Short version: if you have to install an Operating System you are using a full VM; otherwise you are probably using a containerisation tool/
Many things, including storage, networks, CPUs, GPUs, etc. can be virtualised.
We gain quite a few benefits:
Rather than having one environment for every project, we have one environment for each project.
Podman is an open source container and image management engine. Podman makes it easy to find, run, build, and share containers.
Podman makes configuring a development environment (fairly) simple. If a Podman image works for us then we know1 it works for you.
Use either:
jreades/sparc:2025-amd
(Windows and Older Macs)jreades/sparc:2025-arm
(Newer Macs)… is the practice of tracking and managing changes to software code.
Source: Altassian
… If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members.
Source: Altassian
In addition:
In open source projects there may be no one view of what the ‘right’ solution/version of a project is, so differences need to be negotiated.
Version control allows us to:
commit
.push
these changes out to others.pull
down changes made by others.merge
and resolve conflicting changes.tag
when a ‘milestones’ is reached.branch
to add a feature.checkout
.Git is distributed, meaning that every computer is a potential server and a potential authority. Result: commits on a plane!
But how do people find and access your code if your ‘server’ is a home machine that goes to sleep at night? Result: GitHub.
GitHub is ‘just’ a very large Git server with a lot of nice web-friendly features tacked on: create a web site, issue/bug tracking, promote your project…
Source: OhMyGit
A markup language is a text-encoding system which specifies the structure and formatting of a document…
Source: Wikipedia
I spend a lot less time ‘faffing’ writing in Markdown than I used to. Spend more time on what you want to say and worry about the how later.
### A Subtitle
Some text in **bold** and *italics* with a [link](https://jreades.github.io/).
> A blockquote
See CommonMark and the Markdown Guide for more:
Format | Output |
Plain text... | Plain text |
## A Large Heading | A Large Heading |
### A Medium Heading | A Medium Heading |
- A list - More list |
|
1. An ordered list 2. More ordered list |
|
[A link](http://casa.ucl.ac.uk) | A link |
Format | Output |
---|---|
 |
![]() |
`A code snippet` |
A code snippet
|
```{python} A block of Python code ``` |
A block of Python code
|
$$ f(a) = \frac{1}{2\pi i} |
\[ f(a) = \frac{1}{2\pi i} \oint_{\gamma} \frac{f(z)}{z-a} dz \] |
‘Rendering’ is the process of taking all of the code and markup and outputting it to a particular format (web page, web site, PDF, etc.). So it’s the last piece of this pipeline for working with data, code, and text.
Everything this week was created using these basic tools and techniques. It has transformed the way I teach, do research, and write! It embodies the potential of ‘literate programming’ (Knuth 1984).
Markdown:
And once you’re ready to get ‘serious’, check out this tutorial on Sustainable Authorship in Plain Text using Pandoc and Markdown from The Programming Historian! That’s what actually underpins Quarto, but you can do so much more…
Our Tools