Padliography: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Here a list of all XPUB1 pads (2021/2022)(classes, and group meetings)
[[File:Padliography frog.jpg|thumb]]
This page works as a mini database for the PADliography [https://hub.xpub.nl/soupboat/padliography/ you can find in our Soupboat] 👀 <br>
You can modify and add contents following the Wikitext syntax for table. This is the template for adding a new row:


|-
The Padliography is a tool to keep track of our pads. It is built to interact with the MediaWiki API, and it uses ''XPUB & Lens-Based Wiki'''s pages as archive. Find it here: [https://hub.xpub.nl/soupboat/padliography/ Padliography]
| link || title || overview || categories || date
 
|-
''' Features '''
 
* Multiple archives
* Custom categories
* Filter by categories
* Table Sorting
* Create new pad
* Interact with the wiki


The only mandatory fields are the link and the title. You can omit the overview and the date and the category and nothing should break. <br>
For the '''categories''' name it would be nice to be consistent. You can add a list of categories separated by a comma. <br>
Note that the '''date''' field is formatted like mm/dd/yyyy. Sorry for that but for now it's like this. <br>
When inserting new contents pls be sure to check the preview, and if the table is broken due to some syntax error pls fix it before saving the changes.
<br>
<br>
<br>
If you wanna try your own PADliography you can find the [https://git.xpub.nl/kamo/PADliography repo here]. It is sufficient to change the name of the wiki page in the first line of the content.js file and then everything should work. If not: sorry.


== List of pads ==
== Quick Start ==
 
The Padliography homepage loads by default the XPUB2 archive. Just above the pads list it is indicated from where the pads are being fetched, and it is possible to change source by inserting the title of the page in which the other archive is.
 
To create a brand new archive click on '''Init a new padliography''' and insert a title and a short description to put in the wiki.
''Watch out:'' This action will create a new blank page, so check that there is not already something with the same title in the wiki, or it will be overwritten. Thanks to the wiki's history, it is possible to recover overwritten contents, so the contents are not in total danger.
 
Use the '''Add a new pad''' form to insert a pad in the archive. The required information are a title, the URL of the document, a short description, a date and some categories. The categories are custom, and are useful to organize pads in themes or context.
 
The '''Filter Categories''' section loads all the categories from the current archive and uses it to filter the list of pads.
 
The list of pads is sortable. Click on the headers to order the pad, click twice to invert the order.
 
At the moment this Padliography instance runs on the [https://hub.xpub.nl/soupboat/ Soupboat]. If you are using it a lot or with a lot of pads, consider to install a new instance on a different environment, in order not to put a strain on the small Raspberry. It should be fine anyway.
 
== How does it work ==
 
[[File:Pad Lifecycle.jpg|thumb]]
 
To have an overview over the lifecycle of the Padliography let’s start from the wiki. The pads are stored in a page with a minimal template, such as the title, a short description and a section named Padliography with the archive. Here they are organized in a table that has the CSS class <code>padliography</code>.
 
Through the [https://pzwiki.wdka.nl/mediadesign/Special:ApiSandbox MediaWiki API] we can request the contents of this page from somewhere else. This somewhere else is a small Raspberry Pi called Soupboat and installed on the 4th floor of the WdKA.
 
The Soupboat is a small server, and it runs a [https://flask.palletsprojects.com/en/2.2.x/ Flask] application that interacts with the wiki using the [https://mwclient.readthedocs.io/en/latest/index.html mwclient] python library.
 
When a user enters the homepage of the padliography, the Flask application returns a [https://vuejs.org/ Vue3] app and through that requests to the wiki API the list of pads.
 
The response from the MediaWiki API is parsed on the server using [https://www.crummy.com/software/BeautifulSoup/ BeautifulSoup], that tries to find the <code>padliography</code> table with some CSS selectors and then builds a list of pads organized by the properties of the table’s headers. The list of table is sent to the Vue app as JSON message, and used to compile a fancy sortable table and filtering system.
 
When a user interacts with the form to add a new pad the process is the same, but in the opposite direction: first the Vue app sends the data to the Flask application that in turns tries to add it in the archive wiki page.
 
== Development ==
 
=== Local Setup ===
 
To install the Padliography somewhere else start by cloning this repo.
 
<pre>git clone https://git.xpub.nl/kamo/pad-bis.git</pre>
Then move to the cloned repository folder and create a python virtual environment.
 
<pre>cd pad-bis
python3 -m venv venv</pre>
Activate the virtual environment
 
<pre># on unix
source venv/bin/activate
 
# on windows
venv\Scripts\activate</pre>
and then install the requirements with pip. The '''.''' here refers to the current working directory, where the '''setup.py''' file can be found. There are specified all the packages the application needs.
 
<pre>pip install -e .</pre>
Once the installation is completed, launch the application and open it on the default port .
 
<pre>python pad-bis.py</pre>
If you open <code>localhost:5000</code> on your browser, it will return the padliography stuck in the loading process. This is why before interacting with the MediaWiki API we need to specify the credential for a user to log into the wiki. On your local version you can use your own credentials, but if you plan to put this padliography online it’s better to use a dedicated user, aka a bot.
 
Remember not to commit your credentials on git, or they will be rendered public! Instead create and <code>.env</code> file, that will not be uploaded on git as specified in the <code>.gitignore</code> file.
 
Create an <code>.env</code> file in your working directory with the following properties:
 
<pre>MW_BOT= your username
MW_KEY= your password</pre>
At this step you are up and running, the padliography should be able to fetch the pad from the wiki etc.
 
== License ==


{| class="wikitable sortable padliography"
This Padliography was distilled with the help and within the context of XPUB, 2022.<br />
|-
Copyleft with a difference: This is a collective work, you are invited to copy, distribute, and modify it under the terms of the [https://constantvzw.org/wefts/cc4r.en.html CC4r].
! Link !! Title !! Overview !! Category !! Date
|-
| https://pad.xpub.nl/p/o2jT2mUjNgH0Vk1uPZLR || Week_1 with Steve || Introduction to Reading, Writing and Research Methodologies + first reading, writing workshop || RWRM, Week_1 || 9/22/2021
|-
| https://pad.xpub.nl/p/SP16_2107 || Introduction to prototyping || Knowledge and information organisation are deeply intimate acts || Prototyping, Week_1 || 9/21/2021
|-
| https://pad.xpub.nl/p/SP16_2809 || Orientation/Navigation || Object relations are not just a story of how we use objects but rather how, through relating, we begin to inaugurate and structure our very capacity to position ourselves in reality and phantasy, and so, to the very work of thinking. || SP16, Week_2 || 09/28/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-2 || Prototyping || Soupboat is born || SP16, Week_2 || 09/27/2021
|-
| https://pad.xpub.nl/p/SP16_0510 || Language patterns experiments || Cat’s cradle is about patterns and knots || SP16, Week_3 || 10/5/2021
|-
| https://pad.xpub.nl/p/SP_16_0610 || Reader 'prototypes' || since we are exposed to several topics relates to orientation / disorientation / editing / so we could help(?) the readers to navigate different texts || SP16, RWRM, Week_3 || 10/6/2021
|-
| https://pad.xpub.nl/p/SP16_1210 || Transcription processes || interpretive decisions (What is transcribed?) epresentational decisions (How is it transcribed?) || SP16, Week_4 || 10/12/2021
|-
| https://pad.xpub.nl/p/SP16_0510_texts || Magic Words Glossary || Little spells that can be used anywhere on the pad to indicate how we want to interact with the text || SP16, Week_3 || 10/5/2021
|-
| https://pad.xpub.nl/p/2021-10-11-protoyping || Prototyping XP8 + NLTK2 || Custom text corpus in NLTK || Prototyping, Week_4, NLTK || 10/11/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-3 || Prototyping XP7 + NLTK1 || Introduction to NLTK + Explorative programming ch 7 || Prototyping, Week_3, NLTK || 10/4/2021
|-
| https://pad.xpub.nl/p/GroupMeeting_18102021 || Meeting SP16: Rejection? 🧠⚡ || First group meeting for the SP16 || SP16, Meeting, Rejection || 10/18/2021
|-
| https://pad.xpub.nl/p/Rejection_Glossary || Rejection Glossary || Approaching rejection from a lot of points of view || SP16, Rejection || 10/18/2021
|-
| https://pad.xpub.nl/p/GroupMeeting_27102021 || Group Meeting Structure || How do we want to work together? How can we structure future meetings? || SP16, Meeting, Rejection || 10/27/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-7 || Prototyping || Collecting texts and creating our own corpora || Week_7, Prototyping, NLTK || 11/1/2021
|-
| https://pad.xpub.nl/p/week7_withClara || SP16 with Clara Balaguer || || Week_7, SP16|| 11/2/2021
|-
| https://pad.xpub.nl/p/TBD_VLTK || TBD VLTK, by Clara Balaguer || A high-low mix tape on the vernacular || Week_7, SP16 || 11/2/2021
|-
| https://pad.xpub.nl/p/Meeting_SP16_Nov_04 || Group Meeting || Remarks on the Rejection Glossary, Vernacular, SI16 Brainstorming, Organising our work || Week_7, SP16, Meeting, Rejection || 11/4/2021
|-
| https://pad.xpub.nl/p/Meeting_Template || TEMPLATE for Group Meetings || Please copy from this template and paste to the actual meeting pad! || SP16, Meeting, Templates || 11/4/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-8 || Prototyping XP15, Publishing Pipeline || XP15 check in + Etherpad API with Python || Week_8, Prototyping || 11/8/2021
|-
| https://pad.xpub.nl/p/SP16_0911 || SP16 with Cristina (Danny is sick) || RUMINATION, DIGESTION, REFLECTION a.k.a. "The long day with Cristina" || SP16, Week_8 || 11/9/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-9 || Prototyping || Sharing out prototypes, Creating a webpage w/ Python + html & css, What is "documentation" || Prototyping, Week_9 || 11/15/2021
|-
| https://pad.xpub.nl/p/Meeting_16112021 || Group meeting || morning: SP16 structure proposals; afternoon: editorial w/ Cristina || Week_9, SP16 || 11/16/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-10 || Prototyping || Exploring ways to create the API [examples] || Week_10, Prototyping || 11/22/2021
|-
| https://pad.xpub.nl/p/si16-26112021 || Guest Danny Tirthdas van der Kleij || Vernacular in the Software || Week_10, SP16 || 11/26/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-11 || Prototyping || Check-in + Tutorial + ... || Week_11, SP16, Prototyping || 11/29/2021
|-
| https://pad.xpub.nl/p/si16-protoyping-week-12 || Prototyping || ... || Week_12, SP16, Prototyping || 12/06/2021
|-
| https://pad.xpub.nl/p/si16-week-12 || SP16 with Cristina || Radical efficiency day || Week_12, SP16 || 12/07/2021
|-
| https://pad.xpub.nl/p/18012022 || SP17 with Lidia & Co. || Ideology, gamification || Week_02, SP17 || 01/18/2022
|-
| https://pad.xpub.nl/p/19012022 || RW&RM with Steve || Marx and Engels; Gramsci; Hebdidge; Chad McCail || Week_02, SP17, RWRM || 01/19/2022
|-
| https://pad.xpub.nl/p/19012022 || SP17 with Lidia & Co. || Games as reproductive technologies, Predatory monetization || Week_03, SP17 || 01/25/2022
|-
| https://pad.xpub.nl/p/si16_debrief || SP16 Debrief || Reflections, debrief with XPUB1, Aymeric, Michael, Cristina, Manetta and Steve || Debrief, SP16, Week_03 || 01/26/2022
|-
| https://pad.xpub.nl/p/01022022 || SP17 with Lidia & Co. || Digesting, reflecting, more reads + Tutorials || SP17, Week_04 || 02/01/2022
|-
| https://pad.xpub.nl/p/02022022 || RW&RM || NO NEW STUFF & Creating our Productive Play Glossary || SP17, RWRM, Week_04 || 02/02/2022
|-
| https://pad.xpub.nl/p/SI17-prototyping-07022022 || Prototyping || Building little games, playful things, make mazes with python || Prototyping, Week_05 || 02/07/2022
|-
| https://pad.xpub.nl/p/08022022 || SP17 with Lidia & Co. || What is modding and how it is connected to culture and labour || SP17, Week_05 || 02/07/2022
|-
| https://pad.xpub.nl/p/role-playing-structure || Experimental Kitchen || Kim and Chae designed an experimental role-play session for the whole group || SP17, Week_05 || 02/08/2022
|-
| https://pad.xpub.nl/p/paolopedercini || Paolo Pedercini session || tba || SP17, Week_05, Talks || 02/09/2022
|-
| https://pad.xpub.nl/p/SI17-prototyping-14022022 || Prototyping || Play time for puzzles, mini-games collaboration tools || Prototyping, Week_06 || 02/14/2022
|-
| https://hub.xpub.nl/soupboat/pad/p/group_meeting_18022022 || Group meeting || set pre-launch date and group awareness, the loot box, our public and intentions towards our public || SP17, Meeting || 02/18/2022
|-
| https://hub.xpub.nl/soupboat/pad/p/group_meeting_21022022 || Group meeting || Loot box proposals, PNF & confirm format - the Box || SP17, Meeting, Week_06 || 02/21/2022
|-
| https://pad.xpub.nl/p/talks-chess-23022022 || dr. Shira Chess session || Public lecture & private Q&A with "Play Like A Feminist" author || SP17, Talks || 02/23/2022
|-
| https://hub.xpub.nl/soupboat/pad/p/group_meeting_28022022 || Group meeting || Prototypes presentations, getting stuck and dividing into small groups to move on || SP17, Meeting || 02/28/2022
|-
| https://pad.xpub.nl/p/SI17-prototyping-07-03-2022 || Prototyping || Bots, IRC [hello, again, mIRC-a :D] & chat bots with python || Prototyping, Week_09 || 03/07/2022
|-
| https://pad.xpub.nl/p/08032022 || SP17 with Lidia & Co. || Progress updates from Teams #1, #2 and #3 || SP17, Week_09 || 03/08/2022
|-
| https://pad.xpub.nl/p/xpub1-si17-editorial-groups-outlines || Editorial meeting || Team representatives meeting with the editors to align the overall concept || SP17, Week_09, Meeting || 03/09/2022
|-
| https://pad.xpub.nl/p/SI17-prototyping-14-03-2022 || Prototyping || Catching up, git tutorial, deadlines for the week || Prototyping, Week_10 || 03/14/2022
|-
| https://pad.xpub.nl/p/15032022 || SP17 with Lidia & Steve || Updates from editors and teams 1,2 3; to-dos for the week || SP17, Week_10 || 03/14/2022
|-
| https://pad.xpub.nl/p/SI17-prototyping-21-03-2022 || Prototyping || Assessments, documentation & updates from teams 1 & 3; Hello, Spring! || SP17, Week_10 || 03/21/2022
|-
|}


== Draft ==
[[Category:Padliography]]
* Week_1 with Steve (Introduction to Reading, Writing and Research Methodologies + first reading, writing workshop): https://pad.xpub.nl/p/o2jT2mUjNgH0Vk1uPZLR
* Week_1 prototyping intro: https://pad.xpub.nl/p/SP16_2107
* Week_2 about orientation/navigation: https://pad.xpub.nl/p/SP16_2809
* Week_3 language patterns experiments: https://pad.xpub.nl/p/SP16_0510
* Week_4 readers 'prototypes': https://pad.xpub.nl/p/SP_16_0610
* Week_5 transcription processes: https://pad.xpub.nl/p/SP16_1210
* Magic Words Glossary: https://pad.xpub.nl/p/SP16_0510_texts
* NLTK related: https://pad.xpub.nl/p/2021-10-11-protoyping & https://pad.xpub.nl/p/si16-protoyping-week-3
* Group Meeting 18.10: https://pad.xpub.nl/p/GroupMeeting_18102021
* Rejection Glossary: https://pad.xpub.nl/p/Rejection_Glossary

Latest revision as of 18:20, 18 October 2022

Padliography frog.jpg

The Padliography is a tool to keep track of our pads. It is built to interact with the MediaWiki API, and it uses XPUB & Lens-Based Wiki's pages as archive. Find it here: Padliography

Features

  • Multiple archives
  • Custom categories
  • Filter by categories
  • Table Sorting
  • Create new pad
  • Interact with the wiki


Quick Start

The Padliography homepage loads by default the XPUB2 archive. Just above the pads list it is indicated from where the pads are being fetched, and it is possible to change source by inserting the title of the page in which the other archive is.

To create a brand new archive click on Init a new padliography and insert a title and a short description to put in the wiki. Watch out: This action will create a new blank page, so check that there is not already something with the same title in the wiki, or it will be overwritten. Thanks to the wiki's history, it is possible to recover overwritten contents, so the contents are not in total danger.

Use the Add a new pad form to insert a pad in the archive. The required information are a title, the URL of the document, a short description, a date and some categories. The categories are custom, and are useful to organize pads in themes or context.

The Filter Categories section loads all the categories from the current archive and uses it to filter the list of pads.

The list of pads is sortable. Click on the headers to order the pad, click twice to invert the order.

At the moment this Padliography instance runs on the Soupboat. If you are using it a lot or with a lot of pads, consider to install a new instance on a different environment, in order not to put a strain on the small Raspberry. It should be fine anyway.

How does it work

Pad Lifecycle.jpg

To have an overview over the lifecycle of the Padliography let’s start from the wiki. The pads are stored in a page with a minimal template, such as the title, a short description and a section named Padliography with the archive. Here they are organized in a table that has the CSS class padliography.

Through the MediaWiki API we can request the contents of this page from somewhere else. This somewhere else is a small Raspberry Pi called Soupboat and installed on the 4th floor of the WdKA.

The Soupboat is a small server, and it runs a Flask application that interacts with the wiki using the mwclient python library.

When a user enters the homepage of the padliography, the Flask application returns a Vue3 app and through that requests to the wiki API the list of pads.

The response from the MediaWiki API is parsed on the server using BeautifulSoup, that tries to find the padliography table with some CSS selectors and then builds a list of pads organized by the properties of the table’s headers. The list of table is sent to the Vue app as JSON message, and used to compile a fancy sortable table and filtering system.

When a user interacts with the form to add a new pad the process is the same, but in the opposite direction: first the Vue app sends the data to the Flask application that in turns tries to add it in the archive wiki page.

Development

Local Setup

To install the Padliography somewhere else start by cloning this repo.

git clone https://git.xpub.nl/kamo/pad-bis.git

Then move to the cloned repository folder and create a python virtual environment.

cd pad-bis
python3 -m venv venv

Activate the virtual environment

# on unix
source venv/bin/activate

# on windows
venv\Scripts\activate

and then install the requirements with pip. The . here refers to the current working directory, where the setup.py file can be found. There are specified all the packages the application needs.

pip install -e .

Once the installation is completed, launch the application and open it on the default port .

python pad-bis.py

If you open localhost:5000 on your browser, it will return the padliography stuck in the loading process. This is why before interacting with the MediaWiki API we need to specify the credential for a user to log into the wiki. On your local version you can use your own credentials, but if you plan to put this padliography online it’s better to use a dedicated user, aka a bot.

Remember not to commit your credentials on git, or they will be rendered public! Instead create and .env file, that will not be uploaded on git as specified in the .gitignore file.

Create an .env file in your working directory with the following properties:

MW_BOT= your username
MW_KEY= your password

At this step you are up and running, the padliography should be able to fetch the pad from the wiki etc.

License

This Padliography was distilled with the help and within the context of XPUB, 2022.
Copyleft with a difference: This is a collective work, you are invited to copy, distribute, and modify it under the terms of the CC4r.