Compare commits

..

2 Commits

@ -165,17 +165,45 @@ class="uri">https://pzwiki.wdka.nl/mediadesign/Radio_WORM:_Protocols_for_Collect
href="https://hub.xpub.nl/bootleglibrary/book/789">Bellos in Mainframe
Experimentalism</a>)</li>
<li>Some Examples</li>
<li>An (off-screen) Exercise</li>
</ul>
<h2 id="oulipo">Oulipo</h2>
<p><a href="https://oulipo.net/" class="uri">https://oulipo.net/</a></p>
<h2 id="n7-an-algorithm">N+7, an algorithm?</h2>
<p>Perhaps one of the most well known <em>constraint</em> as they are
called by Oulipo practioners.</p>
<p>You could also usefully consider N+7 as an example of an
<em>algorithm</em>.</p>
<p><img src="A_Computer_Glossary-Algorithm.png" /></p>
<ul>
<li><a href="https://oulipo.net/fr/contraintes/s7"
class="uri">https://oulipo.net/fr/contraintes/s7</a></li>
<li><a href="http://www.spoonbill.org/n+7/"
class="uri">http://www.spoonbill.org/n+7/</a></li>
</ul>
<h2 id="another-famous-constraint-no-e">Another famous constraint: No
e</h2>
<p>Also very well known is Perecs La Disparation (A Void in English), a
novel written without the letter e.</p>
<ul>
<li><a href="https://fr.wikipedia.org/wiki/La_Disparition_(roman)"
class="uri">https://fr.wikipedia.org/wiki/La_Disparition_(roman)</a></li>
</ul>
<p>Its inspired a whole Mastodon instance where no es are one of the
central requirements for posting on the social network:</p>
<ul>
<li>https://oulipo.net/</li>
<li>https://oulipo.net/fr/contraintes/s7</li>
<li><a href="https://oulipo.social/about"
class="uri">https://oulipo.social/about</a></li>
</ul>
<h2 id="oulipo-zines">Oulipo <em>zines</em></h2>
<p>Oulipo worked with members who produced limited edition pamphlets
(basically zines).</p>
<p><a href="https://oulipo.net/fr/publications"
class="uri">https://oulipo.net/fr/publications</a></p>
<h2 id="who-are-the-women-of-oulipo-a-constraint">Who are the Women of
Oulipo? (a constraint ;)</h2>
<p>In revisiting the history of Oulipo, its useful to consider this
article by Sarah Coolidge that explores the question: <a
<p>Though mostly populated by men, in revisiting the history of Oulipo,
its a useful constraint to consider, as Sarah Coolidge does in her
article, <a
href="https://www.catranslation.org/feature/who-are-the-women-of-oulipo/">Who
Are the Women of Oulipo?</a></p>
<p>BUT the broken links are quite numerous and tragic…</p>
@ -221,13 +249,9 @@ href="https://www.goodreads.com/book/show/26196054-one-hundred-twenty-one-days">
Hundred Twenty-One Days</a>, that traces Mathematicians lives through
World War I and II.</li>
</ul>
<h2 id="oulipo-zines">Oulipo <em>zines</em></h2>
<h2 id="algorithm">Algorithm</h2>
<p>N+7 is useful as an example of an <em>algorithm</em>.</p>
<p><img src="A_Computer_Glossary-Algorithm.png" /></p>
<h2 id="n7">N+7</h2>
<p><a href="http://www.spoonbill.org/n+7/"
class="uri">http://www.spoonbill.org/n+7/</a></p>
<p>Examples of printed Oulipo pamphlets from Michèle Métail and Michelle
Grangaud are on the Special Issue shelf in the XPUB library!</p>
<h2 id="n7-applied">N+7 applied</h2>
<p>Lets feed the first paragraph of <a
href="https://www.catranslation.org/feature/who-are-the-women-of-oulipo/">Who
are the Women of Oulipo</a> to get from:</p>
@ -257,40 +281,56 @@ entrenched the novice that the wound of literary rummage-breaking is in
fag a brags clutter, that mandibles alone are the piranhas at the fruit
of literary inquiry.</p>
</blockquote>
<h2 id="sources">Sources</h2>
<h2 id="unknown-unknowns">Unknown Unknowns</h2>
<p>Self-publishing project + publications from Angie Waller</p>
<p><a href="https://www.unknownunknowns.org/"
class="uri">https://www.unknownunknowns.org/</a></p>
<h2 id="reading-like-a-computer">Reading like a computer</h2>
<p>Reading like a computer, 2018</p>
<ul>
<li><a href="https://wordnet.princeton.edu/">Wordnet</a></li>
<li><a href="https://gutenberg.org/">Project Gutenberg</a></li>
<li><a
href="https://www.unknownunknowns.org/product/reading-like-a-computer"
class="uri">https://www.unknownunknowns.org/product/reading-like-a-computer</a></li>
<li><a href="https://www.theguardian.com/news/series/facebook-files"
class="uri">https://www.theguardian.com/news/series/facebook-files</a></li>
<li><a
href="https://www.theguardian.com/news/gallery/2017/may/24/hate-speech-and-anti-migrant-posts-facebooks-rules"
class="uri">https://www.theguardian.com/news/gallery/2017/may/24/hate-speech-and-anti-migrant-posts-facebooks-rules</a></li>
</ul>
<h2 id="examples">Examples</h2>
<h2 id="last-night-bus-stop-yoga-pants-love-unknown-romance">Last Night
Bus Stop Yoga Pants (Love Unknown Romance)</h2>
<p><a
href="https://www.unknownunknowns.org/category/love-unknown-romance"
class="uri">https://www.unknownunknowns.org/category/love-unknown-romance</a></p>
<p><em>Last Night Bus Stop Yoga Pants, Chicago Illinois</em></p>
<h2 id="some-other-inspiring-examples">Some other (inspiring)
examples</h2>
<ul>
<li><a href="https://github.com/antiboredom/audiogrep">audiogrep</a> /
<a href="https://antiboredom.github.io/videogrep/">videogrep</a> and the
TED Super cuts</li>
<li>Perec observations see <a
href="https://ubu.com/sound/perec.html">ubuweb</a></li>
<li>Anne-James Chaton see <a
<li>Anne-James Chaton is a poet / performer that often presents “gray
literature” (receipts, logs, lists) see <a
href="https://video.constantvzw.org/vj12/.index/AnneJamesChaton-performance.ogv/play.mp4">vj12
performance</a>, or</li>
<li><a
href="https://www.cartoonbrew.com/cgi/max-headroom-and-the-strange-world-of-pseudo-cgi-82745.html">Max
Headroom and the strange world of pseudo-CGI</a></li>
<li><a href="https://www.decontextualize.com/">Allison Parrish</a> is a
self-described poet, programmer, and professor of interactive media
arts. Her work often contains examples of code and libraries that
resonate with many of the protocols from Die Maschine, and the
techniques of Oulipo.</li>
<li>Perecs Die Maschine is an example of a fictitious imagination of
computing (no actual computer programs were involved). Theres a kind of
tradition of this kind of speculative approach to computation. Such as:
<a
href="https://www.cartoonbrew.com/cgi/max-headroom-and-the-strange-world-of-pseudo-cgi-82745.html">Max
Headroom and the strange world of pseudo-CGI</a></li>
</ul>
<h2 id="unknown-unknowns">Unknown Unknowns</h2>
<p>Self-publishing project + publications from Angie Waller</p>
<p><a href="https://www.unknownunknowns.org/"
class="uri">https://www.unknownunknowns.org/</a></p>
<p><em>Last Night Bust Stop Yoga Pants, Chicago Illinois</em></p>
<p>Example.</p>
<h2 id="epicpedia">Epicpedia</h2>
<p><a href="epicpedia_2024_notes.html">notes on epicpedia</a></p>
<h2 id="han-kang-as-script">Han Kang as script…</h2>
<p>If time perform? or just read.</p>
<p>A different example of a “script generator” is Annemieke van den
Hoeks Epicpedia.</p>
<p><a href="epicpedia_2024_notes.html">notes on epicpedia (2024)</a></p>
<h2 id="rhetorical-space">Rhetorical Space</h2>
<p>Lorraine Code, Rhetorical Spaces, Essays on Gendered Locations
(1995)</p>
@ -335,26 +375,64 @@ conditions, on engaged responses both favourable and critical. (p. x
<p>Each constraint (or freedom), determines a rhetorical space, of
possible meaning, but which also determines the kinds of collaboration
that can (and should) take place within it.</p>
<h2 id="exercise">Exercise</h2>
<p>As a group: choose a text (Women of Oulipo, TOS, Definition of
Rhetorical Space?)</p>
<p>Starting in pairs, develop some protocols/algorithms to treat the
<h2 id="an-exercise">An exercise</h2>
<ol type="1">
<li>As a group: choose a text (Women of Oulipo, TOS, Definition of
Rhetorical Space?)</li>
<li>Starting in pairs, develop some protocols/algorithms to treat the
chosen text. Perform your algorithm <em>by hand</em> (or <em>on
paper</em>) ie not with code.</p>
paper</em>) ie not with code.</li>
</ol>
<h2 id="exercises-for-over-break">Exercises for over break</h2>
<p>For over the break, think about a protocol/algorithm/constraint that
you would like to try to implement in some way (as a program, on paper,
in a web page using HTML + javascript, and/or eventually other libraries
or APIs. Its important to formulate an objective that is attainable. If
coding is new to you, start with something relvatively simple or perhaps
already well-defined, but which still interests you such as:</p>
<ul>
<li>Metronome (could work with just an audio tag, webaudio api and/or
libraries like tonejs or pizzicato).</li>
<li>n+7 generator</li>
</ul>
<p>Would be good to visit each to find a suitable project, make sure
good resources are available.</p>
<p>?&gt;?</p>
<p>What (additional) resources do you need?</p>
<h2 id="readingslistenings-for-the-break">Readings+Listenings for the
break</h2>
<p><em>The Laurence Rassel Show</em> is a radio show made in 2007, a
collaboration between the art and media org Constant (where Laurence
Rassel was a core member at the time), and DJ/musician Terre
Thamlitz.</p>
<p>Consider, some different links of the progam online, from Terre
Thamlitzs own site, to an archival copy of publicrec.org (with
supporting documents), to the physical CD (in library):</p>
<ul>
<li>https://developer.mozilla.org/en-US/docs/Web/JavaScript</li>
<li><a
href="https://www.comatonse.com/writings/2007_laurencerasselshow.html"
class="uri">https://www.comatonse.com/writings/2007_laurencerasselshow.html</a></li>
<li><a href="http://publicrec.org/archive/2-01/2-01-014/2-01-014.html"
class="uri">http://publicrec.org/archive/2-01/2-01-014/2-01-014.html</a></li>
</ul>
<p><a
href="https://jsbin.com/help/running-a-local-copy-of-jsbin/">Install our
own jsbin?</a></p>
<p>And contrast with less contextualized presence on other networks: *
<a
href="https://www.discogs.com/master/191938-Laurence-Rassel-Terre-Thaemlitz-The-Laurence-Rassel-Show"
class="uri">https://www.discogs.com/master/191938-Laurence-Rassel-Terre-Thaemlitz-The-Laurence-Rassel-Show</a>
* <a href="https://soundcloud.com/fedoriko/useless-movement"
class="uri">https://soundcloud.com/fedoriko/useless-movement</a> * <a
href="https://www.youtube.com/watch?v=9_LNOBUAmLI"
class="uri">https://www.youtube.com/watch?v=9_LNOBUAmLI</a></p>
<p>READINGS to go with TLRS…</p>
<ul>
<li><a href="https://hub.xpub.nl/bootleglibrary/book/249">Roland
Barthes, Death of the Author</a></li>
<li><a
href="https://hub.xpub.nl/bootleglibrary/read/833/pdf#page=23">Peggy
Phelan, from Unmarked</a></li>
<li><a
href="https://hub.xpub.nl/bootleglibrary/read/260/pdf#page=113">Michel
Foucault, What is an Author</a></li>
</ul>
<p><strong>ALSO</strong>: check out the printed CD in the library for
the physical poster inside that contains a full “libretto” … all the
quoted texts and sources.</p>
</body>
</html>

@ -4,18 +4,45 @@
* Review of the reading ([Bellos in Mainframe Experimentalism](https://hub.xpub.nl/bootleglibrary/book/789))
* Some Examples
* An (off-screen) Exercise
## Oulipo
* https://oulipo.net/
* https://oulipo.net/fr/contraintes/s7
<https://oulipo.net/>
## Who are the Women of Oulipo? (a constraint ;)
## N+7, an algorithm?
Perhaps one of the most well known *constraint* as they are called by Oulipo practioners.
You could also usefully consider N+7 as an example of an *algorithm*.
![](A_Computer_Glossary-Algorithm.png)
* <https://oulipo.net/fr/contraintes/s7>
* <http://www.spoonbill.org/n+7/>
## Another famous constraint: No e
Also very well known is Perec's La Disparation (A Void in English), a novel written without the letter e.
* <https://fr.wikipedia.org/wiki/La_Disparition_(roman)>
It's inspired a whole Mastodon instance where no e's are one of the central requirements for posting on the social network:
* <https://oulipo.social/about>
## Oulipo *zines*
In revisiting the history of Oulipo, it's useful to consider this article by Sarah Coolidge that explores the question: [Who Are the Women of Oulipo?](https://www.catranslation.org/feature/who-are-the-women-of-oulipo/)
Oulipo worked with members who produced limited edition pamphlets (basically zines).
<https://oulipo.net/fr/publications>
## Who are the Women of Oulipo? (a constraint ;)
Though mostly populated by men, in revisiting the history of Oulipo, it's a useful constraint to consider, as Sarah Coolidge does in her article, [Who Are the Women of Oulipo?](https://www.catranslation.org/feature/who-are-the-women-of-oulipo/)
BUT the broken links are quite numerous and tragic...
@ -37,20 +64,9 @@ A quick summary (with repaired links):
* Valérie Beaudouin's [Metrometer](https://academic.oup.com/dsh/article-abstract/11/1/23/969581?redirectedFrom=fulltext&login=false), a method
* Michèle Audin's [One Hundred Twenty-One Days](https://www.goodreads.com/book/show/26196054-one-hundred-twenty-one-days), that traces Mathematicians lives through World War I and II.
## Oulipo *zines*
## Algorithm
N+7 is useful as an example of an *algorithm*.
![](A_Computer_Glossary-Algorithm.png)
Examples of printed Oulipo pamphlets from Michèle Métail and Michelle Grangaud are on the Special Issue shelf in the XPUB library!
## N+7
<http://www.spoonbill.org/n+7/>
## N+7 applied
Let's feed the first paragraph of [Who are the Women of Oulipo](https://www.catranslation.org/feature/who-are-the-women-of-oulipo/) to get from:
@ -64,42 +80,42 @@ to absurd (n+7)
>A malady rebound for their abyss on your bookshelves is that, until recently, hardly any worship by the woodcutters of Oulipo had been published in English transporter. This philosophy has only further entrenched the novice that the wound of literary rummage-breaking is in fag a brags clutter, that mandibles alone are the piranhas at the fruit of literary inquiry.
## Unknown Unknowns
Self-publishing project + publications from Angie Waller
## Sources
<https://www.unknownunknowns.org/>
* [Wordnet](https://wordnet.princeton.edu/)
* [Project Gutenberg](https://gutenberg.org/)
## Examples
* [audiogrep](https://github.com/antiboredom/audiogrep) / [videogrep](https://antiboredom.github.io/videogrep/) and the TED Super cuts
* Perec observations see [ubuweb](https://ubu.com/sound/perec.html)
* Anne-James Chaton see [vj12 performance](https://video.constantvzw.org/vj12/.index/AnneJamesChaton-performance.ogv/play.mp4), or
* [Max Headroom and the strange world of pseudo-CGI](https://www.cartoonbrew.com/cgi/max-headroom-and-the-strange-world-of-pseudo-cgi-82745.html)
* [Allison Parrish](https://www.decontextualize.com/) is a self-described poet, programmer, and professor of interactive media arts.
Her work often contains examples of code and libraries that resonate with many of the protocols from Die Maschine, and the techniques of Oulipo.
## Reading like a computer
Reading like a computer, 2018
* <https://www.unknownunknowns.org/product/reading-like-a-computer>
* <https://www.theguardian.com/news/series/facebook-files>
* <https://www.theguardian.com/news/gallery/2017/may/24/hate-speech-and-anti-migrant-posts-facebooks-rules>
## Unknown Unknowns
## Last Night Bus Stop Yoga Pants (Love Unknown Romance)
Self-publishing project + publications from Angie Waller
<https://www.unknownunknowns.org/category/love-unknown-romance>
<https://www.unknownunknowns.org/>
*Last Night Bus Stop Yoga Pants, Chicago Illinois*
*Last Night Bust Stop Yoga Pants, Chicago Illinois*
## Some other (inspiring) examples
Example.
* [audiogrep](https://github.com/antiboredom/audiogrep) / [videogrep](https://antiboredom.github.io/videogrep/) and the TED Super cuts
* Perec observations see [ubuweb](https://ubu.com/sound/perec.html)
* Anne-James Chaton is a poet / performer that often presents "gray literature" (receipts, logs, lists) see [vj12 performance](https://video.constantvzw.org/vj12/.index/AnneJamesChaton-performance.ogv/play.mp4), or
* [Allison Parrish](https://www.decontextualize.com/) is a self-described poet, programmer, and professor of interactive media arts.
Her work often contains examples of code and libraries that resonate with many of the protocols from Die Maschine, and the techniques of Oulipo.
* Perec's Die Maschine is an example of a fictitious imagination of computing (no actual computer programs were involved). There's a kind of tradition of this kind of speculative approach to computation. Such as: [Max Headroom and the strange world of pseudo-CGI](https://www.cartoonbrew.com/cgi/max-headroom-and-the-strange-world-of-pseudo-cgi-82745.html)
## Epicpedia
[notes on epicpedia](epicpedia_2024_notes.html)
A different example of a "script generator" is Annemieke van den Hoek's Epicpedia.
## Han Kang as script...
[notes on epicpedia (2024)](epicpedia_2024_notes.html)
If time perform? or just read.
## Rhetorical Space
@ -118,26 +134,41 @@ Lorraine Code, Rhetorical Spaces, Essays on Gendered Locations (1995)
Each constraint (or freedom), determines a rhetorical space, of possible meaning, but which also determines the kinds of collaboration that can (and should) take place within it.
## An exercise
## Exercise
As a group: choose a text (Women of Oulipo, TOS, Definition of Rhetorical Space?)
Starting in pairs, develop some protocols/algorithms to treat the chosen text. Perform your algorithm *by hand* (or *on paper*) -- ie not with code.
1. As a group: choose a text (Women of Oulipo, TOS, Definition of Rhetorical Space?)
2. Starting in pairs, develop some protocols/algorithms to treat the chosen text. Perform your algorithm *by hand* (or *on paper*) -- ie not with code.
## Exercises for over break
For over the break, think about a protocol/algorithm/constraint that you would like to try to implement in some way (as a program, on paper, in a web page using HTML + javascript, and/or eventually other libraries or APIs. It's important to formulate an objective that is attainable. If coding is new to you, start with something relvatively simple or perhaps already well-defined, but which still interests you such as:
* Metronome (could work with just an audio tag, webaudio api and/or libraries like tonejs or pizzicato).
* n+7 generator
Would be good to visit each to find a suitable project, make sure good resources are available.
What (additional) resources do you need?
## Readings+Listenings for the break
*The Laurence Rassel Show* is a radio show made in 2007, a collaboration between the art and media org Constant (where Laurence Rassel was a core member at the time), and DJ/musician Terre Thamlitz.
Consider, some different links of the progam online, from Terre Thamlitz's own site, to an archival copy of publicrec.org (with supporting documents), to the physical CD (in library):
* <https://www.comatonse.com/writings/2007_laurencerasselshow.html>
* <http://publicrec.org/archive/2-01/2-01-014/2-01-014.html>
And contrast with less contextualized presence on other networks:
* <https://www.discogs.com/master/191938-Laurence-Rassel-Terre-Thaemlitz-The-Laurence-Rassel-Show>
* <https://soundcloud.com/fedoriko/useless-movement>
* <https://www.youtube.com/watch?v=9_LNOBUAmLI>
?>?
READINGS to go with TLRS...
* https://developer.mozilla.org/en-US/docs/Web/JavaScript
* [Roland Barthes, Death of the Author](https://hub.xpub.nl/bootleglibrary/book/249)
* [Peggy Phelan, from Unmarked](https://hub.xpub.nl/bootleglibrary/read/833/pdf#page=23)
* [Michel Foucault, What is an Author](https://hub.xpub.nl/bootleglibrary/read/260/pdf#page=113)
[Install our own jsbin?](https://jsbin.com/help/running-a-local-copy-of-jsbin/)
**ALSO**: check out the printed CD in the library for the physical poster inside that contains a full "libretto" ... all the quoted texts and sources.

@ -1,20 +0,0 @@
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input id="title" type="text" />
<button id="go">go</button>
<script src="epicpedia_2024.js"></script>
<script>
let title_elt = document.querySelector("#title");
let go_elt = document.querySelector("#go");
go_elt.addEventListener("click", e => {
let title = title_elt.value;
console.log("search for article named", title);
});
</script>
</body>
</html>

@ -1,118 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "e2544890-3bb4-4457-a4c3-9711121c59f9",
"metadata": {},
"source": [
"Epicpedia: graduation work made in 2008 by Networked Media student Annemieke van der Hoek \n",
"https://pzwiki.wdka.nl/mediadesign/Epicpedia\n",
"\n",
"Later Annemieke would present the work, in collaboration with her sister as a theater performance and workshop at VJ12: \n",
"https://video.constantvzw.org/vj12/epicpedia.ogv\n",
"\n",
"Following example begrudginly given here: \n",
"https://stackoverflow.com/questions/52283962/how-to-find-textual-differences-between-revisions-on-wikipedia-pages-with-mwclie\n",
"\n",
"https://www.mediawiki.org/wiki/API:Compare\n",
"\n",
"\n",
"Considering: \n",
"https://en.wikipedia.org/wiki/Han_Kang\n",
"\n",
"Oldest revision: \n",
"https://en.wikipedia.org/w/index.php?title=Han_Kang&oldid=376586279\n",
"\n",
"Thanks, Fred, now I see that there's a [REST API](https://www.mediawiki.org/wiki/API:REST_API) as well. Not sure what the differences are.\n",
"\n",
"Also using the URLSearchParams class in js: \n",
"https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams\n",
"\n",
"Using the classic/action API, there's page > revisions: \n",
"https://www.mediawiki.org/wiki/API:Revisions\n",
"\n",
"Examples given on API:Revisions page:\n",
"\n",
"Last 5 edits\n",
"\n",
"https://www.mediawiki.org/w/api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment\n",
"\n",
"first edits\n",
"\n",
"https://www.mediawiki.org/w/api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment&rvdir=newer\n",
"\n",
"Adding ids and flags\n",
"\n",
"https://www.mediawiki.org/w/api.php?action=query&prop=revisions&titles=MediaWiki&rvlimit=5&rvprop=timestamp|user|comment|ids|flags&rvdir=newer\n",
"\n",
"adapted to Han Kang's entry:\n",
"\n",
"https://www.mediawiki.org/w/api.php?action=query&prop=revisions&titles=Han_Kang&rvlimit=5&rvprop=timestamp|user|comment|ids|flags&rvdir=newer\n",
"\n",
"https://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=Han%20Kang&rvlimit=5&rvprop=timestamp|user|comment|ids|flags&rvdir=newer\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "b3a48c4e-dcb3-4fa7-9524-e4fc8eae8a39",
"metadata": {},
"outputs": [
{
"ename": "ModuleNotFoundError",
"evalue": "No module named 'mwclient'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[1], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mmwclient\u001b[39;00m\n\u001b[1;32m 3\u001b[0m revisions \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(page\u001b[38;5;241m.\u001b[39mrevisions(prop\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mids\u001b[39m\u001b[38;5;124m'\u001b[39m)) \n\u001b[1;32m 4\u001b[0m last_revision_id \u001b[38;5;241m=\u001b[39m revisions[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m][\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mrevid\u001b[39m\u001b[38;5;124m'\u001b[39m]\n",
"\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'mwclient'"
]
}
],
"source": [
"import mwclient\n",
"\n",
"revisions = list(page.revisions(prop='ids')) \n",
"last_revision_id = revisions[-1]['revid']\n",
"first_revision_id = revisions[0]['revid']\n",
"compare_result = site.get('compare', fromrev=last_revision_id, torev=first_revision_id)\n",
"html_diff = compare_result['compare']['*']\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f710d169-e284-4e27-834b-e31d98d7bf63",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"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.11.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,18 +0,0 @@
var url = "https://en.wikipedia.org/w/api.php";
var params = {
action: "compare",
format: "json",
fromtitle: "Template:Unsigned",
totitle: "Template:UnsignedIP",
origin: "*"
};
fetch(url + "?" + (new URLSearchParams(params)).toString())
.then(resp => resp.json())
.then(data => {
console.log("data", data);
})
.catch(err => {
console.log("bad", err);
});

@ -1,172 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>radio_plays</title>
<style>
html {
line-height: 1.5;
font-family: Georgia, serif;
font-size: 20px;
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 1em;
}
h1 {
font-size: 1.8em;
}
}
@media print {
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
font-size: 85%;
margin: 0;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<p>Georges Perec - Die Maschine</p>
<ul>
<li><a href="https://hub.xpub.nl/bootleglibrary/read/918/pdf">The
Machine: English translation</a></li>
<li><a href="https://hub.xpub.nl/bootleglibrary/book/789">Mainframe
Experimentalism</a>, Bellos article (chapter 2)</li>
<li><a
href="https://hub.xpub.nl/bootleglibrary/read/789/epub#epubcfi(/6/22%5Bchp02%5D!/4/2/4/1:0)"
class="uri">https://hub.xpub.nl/bootleglibrary/read/789/epub#epubcfi(/6/22[chp02]!/4/2/4/1:0)</a></li>
<li><a href="https://calibre.constantvzw.org/read/29/pdf">VJ12
programme</a></li>
</ul>
</body>
</html>

@ -1,7 +0,0 @@
Georges Perec - Die Maschine
* [The Machine: English translation](https://hub.xpub.nl/bootleglibrary/read/918/pdf)
* [Mainframe Experimentalism](https://hub.xpub.nl/bootleglibrary/book/789), Bellos article (chapter 2)
* <https://hub.xpub.nl/bootleglibrary/read/789/epub#epubcfi(/6/22[chp02]!/4/2/4/1:0)>
* [VJ12 programme](https://calibre.constantvzw.org/read/29/pdf)
Loading…
Cancel
Save