bubble testing

master
Michael Murtaugh 10 months ago
parent 86994483ac
commit 8d15519213

@ -0,0 +1,11 @@
.bubble {
position: absolute;
z-index: 23;
width: 80px;
}
svg#bubble {
display: none;
}
.audio_pop {
display: none;
}

@ -0,0 +1,141 @@
function randint (low, high) {
return low + Math.floor(Math.random()*(high + 1 - low));
}
function rand (low, high) {
return low + Math.random()*(high - low);
}
function pick (elts) {
let ri = randint(0, elts.length-1);
// console.log("elts", ri, elts.length);
return elts[ri];
}
let bubble_size = 80;
function nextFrame() {
return new Promise( resolve => requestAnimationFrame(resolve) );
}
function sleep (secs) {
return new Promise( resolve => window.setTimeout(resolve, secs*1000))
}
function rect_intersects (r1, r2) {
return (r1.bottom > r2.top
&& r1.right > r2.left
&& r1.top < r2.bottom
&& r1.left < r2.right);
}
function inPage (elt) {
let html = document.getElementsByTagName("html")[0];
let html_rect = html.getBoundingClientRect();
let elt_rect = elt.getBoundingClientRect();
return rect_intersects(html_rect, elt_rect);
}
function getPageRect () {
let html = document.getElementsByTagName("html")[0];
return html.getBoundingClientRect();
}
let bubble_border = 100;
let audio_pops = document.querySelectorAll(".audio_pop");
let did_link = false;
async function blow () {
// console.log("<bubble>");
let svg_template = document.querySelector("svg#bubble");
let svg = svg_template.cloneNode(true);
svg.removeAttribute("id");
let div = document.createElement("div");
let anchor = document.createElement("a");
anchor.setAttribute("href", "https://worm.org/production/opening-experimental-publishing-graduation-show-shop-2023-making-things-bubblic-%f0%9f%ab%a7/");
anchor.setAttribute("target", "worm");
let pop = false;
anchor.addEventListener("click", e => {
pop = true;
pick(audio_pops).play();
if (did_link) {
e.preventDefault();
return;
}
did_link = true;
});
div.appendChild(anchor);
div.classList.add("bubble");
document.body.appendChild(div);
anchor.appendChild(svg);
const edge = (randint(0, 3) == 0);
let x = 0;
let y = 500;
let page_rect = getPageRect();
let angle = 0;
if (edge == 0) {
y = bubble_border + (page_rect.height - bubble_size - bubble_border) * Math.random();
x = -bubble_size;
angle = 0;
angle = rand(-(Math.PI/4), Math.PI/4);
} else if (edge == 2) {
y = bubble_border + (page_rect.height - bubble_size - bubble_border) * Math.random();
x = page_right.width + bubble_border;
angle = rand(Math.PI*0.75, Math.PI*1.25);
// angle = -Math.PI;
} else if (edge == 1) {
// top
x = 100
// x = bubble_border + (page_rect.width - bubble_size - bubble_border) * Math.random();
y = -bubble_size - bubble_border;
angle = rand(Math.PI * 1.25, Math.PI * 1.75);
} else {
// bottom
x = bubble_border + (page_rect.width - bubble_size - bubble_border) * Math.random();
y = bubble_size + page_rect.height + bubble_border;
angle = rand(Math.PI * 0.25, Math.PI * 0.75);
}
let speed = rand(0.01, 2.5);
let count = 0;
let in_body = false;
while (count < 10000) {
div.style.left = `${x}px`;
div.style.top = `${y}px`;
x += speed * Math.cos(angle);
y += speed * -Math.sin(angle);
await nextFrame();
count += 1;
let in_body_now = inPage(div);
if (!in_body) {
if (in_body_now) {
in_body = true;
}
} else {
if (!in_body_now) {
break;
}
}
if (pop) {
break;
}
// console.log(`bubble loop ${count} x:${x}, xspeed: ${speed * Math.cos(angle)}`);
}
document.body.removeChild(div);
//console.log("</bubble>");
}
async function blow_bubbles_periodically () {
while (true) {
blow();
let w = rand(1, 10);
await sleep(w);
}
}
// console.log("bubbles2");
window.addEventListener("DOMContentLoaded", e => {
// console.log("DOMContentLoaded*");
window.setTimeout(blow_bubbles_periodically, 500);
});

@ -32,8 +32,8 @@
<details open id="call_details">
<p><summary> <strong><span class="big">Making Things Bubblic 🫧: Experimental Publishing Graduation Show &amp; Shop 2023</span></strong><br />
Opening Thursday 29th June (18:00 - 22:30)<br />
Friday 30th June - Sunday 2nd July (12:00 - 18:00)</p>
<p></summary></p>
Friday 30th June - Sunday 2nd July (12:00 - 18:00)<br />
</summary></p>
<p><a href="https://worm.org/production/opening-experimental-publishing-graduation-show-shop-2023-making-things-bubblic-%f0%9f%ab%a7/" class="uri">https://worm.org/production/opening-experimental-publishing-graduation-show-shop-2023-making-things-bubblic-%f0%9f%ab%a7/</a></p>
<p>WORM S/ash Gallery<br />
Boomgaardsstraat 69, Rotterdam</p>

@ -0,0 +1,258 @@
<!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>xpubliverse</title>
<style>
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;}
</style>
<link rel="stylesheet" href="index.css" />
</head>
<body>
<header id="title-block-header">
<h1 class="title">xpubliverse</h1>
</header>
<div id="intro" class="flex">
<details open>
<p><summary> XPUB is the Master of Arts in Fine Art and Design: Experimental Publishing of the Piet Zwart Institute. XPUB focuses on the acts of making things public and creating publics in the age of post-digital networks. </summary></p>
<p>XPUBs interests in publishing are therefore twofold: first, publishing as the inquiry and participation into the technological frameworks, political context and cultural processes through which things are made public; and second, how these are, or can be, used to create publics.</p>
<a href="https://pzwart.nl/experimental-publishing/">Read more on pzwart.nl</a>
</details>
<details open>
<summary> Welcome to the XPUB homepage with links to tools and webpages we use in the course. </summary> An important part of the XPUB course is considering the implications of the technologies and tools we use, how the choices have an impact socially, environmentally, politically. In this spirit, rather than relying heavily on cloud services, XPUB (self-) hosts and maintains many of the servers and services that the course uses. Students learn and practice skills of programming and server maintenance in order to gain first hand experience with the materials of software and networks.
</details>
</div>
<details open id="call_details">
<p><summary> <strong><span class="big">Making Things Bubblic 🫧: Experimental Publishing Graduation Show &amp; Shop 2023</span></strong><br />
Opening Thursday 29th June (18:00 - 22:30)<br />
Friday 30th June - Sunday 2nd July (12:00 - 18:00)<br />
</summary></p>
<p><a href="https://worm.org/production/opening-experimental-publishing-graduation-show-shop-2023-making-things-bubblic-%f0%9f%ab%a7/" class="uri">https://worm.org/production/opening-experimental-publishing-graduation-show-shop-2023-making-things-bubblic-%f0%9f%ab%a7/</a></p>
<p>WORM S/ash Gallery<br />
Boomgaardsstraat 69, Rotterdam</p>
<p>Opening: Thursday 29th June (18:00 - 22:30)</p>
<ul>
<li>20:00 Commencement speech by Erica Gargaglione and Kimberley Cosmilla</li>
<li>21:00 Performance by mitsitron (mitsa chaida)</li>
</ul>
<p>Expo: Friday 30th June - Sunday 2nd July (12:00 - 18:00)</p>
<ul>
<li>12:00 - 13:00 on Friday + Saturday + Sunday<br />
Free Collective lunch served daily, everyone is welcome!<br />
Small loaf of Minor Stories by Chaeyoung Kim will be served on the side…</li>
<li>16:00 on Saturday<br />
Performance by mitsitron (mitsa chaida)</li>
</ul>
<!--Opening Thursday 29th June 18:00
- Presentation 20:00 Commencement speech by Erica Gargaglione and Kimberley Cosmilla
- Performance 21:00 mitsitron (mitsa chaida)
Expo
- Friday + Saturday + Sunday: daily
- Saturday: performance 16:00 mitsitron (mitsa chaida)
-->
<p>WARM UP: Broadcasts on <a href="https://radio.worm.org/">Radio WORM</a>, hosted by Ål Nik (Alexandra Nikolova) and Gersande Schellinx.</p>
<ul>
<li>Friday 23rd June 20:00 - 21:00</li>
<li>Tuesday 27th June 19:00 - 20:00</li>
</ul>
</details>
<style>
.big {
font-size: 150%;
}
button.apply{
filter: drop-shadow(16px 16px 20px magenta);
}
a.video {
filter: drop-shadow(5px 5px 5px magenta);
}
#call_details {
max-width: unset;
}
div#call {
font-style: normal;
}
div#call span.phrase:last-of-type span.comma{
display: none;
}
strong{
color: magenta;
}
</style>
<section id="section" class="level2">
<h2>2023</h2>
<div class="flex">
<details>
<p><summary>Special Issue #21: Interim Release</p>
<p><img src="2023/IMG_20230424_142511.resize.jpg" /></p>
<p></summary></p>
<blockquote>
<p>Special Issue #21 starts from a single technical object: a teletype machine. The teletype is the meeting point between typewriters and computer interfaces, a first automated translator of letters into bits. Equipped with a keyboard, a transmitter and a punchcard read-writer, it is a historical link between early transmission technology such as the telegraph and the Internet of today.</p>
</blockquote>
<p>Guest Editor: Martino Morandi</p>
<p><a href="https://pzwiki.wdka.nl/mediadesign/TTY">Course syllabus</a><br />
<a href="https://media.xpub.nl/2023/20230424_si21_teletype_performance.mp4" class="video">Video documentation</a></p>
</details>
<details>
<p><summary>Special Issue #20: Console</p>
<p><img src="2023/console_box_opening.360x.jpg" /></p>
<p></summary></p>
<p>Special Issue #20: Console, was launched March 31, 2023, at <a href="https://page-not-found.nl">Page Not Found</a> in Den Haag.</p>
<p><a href="https://pzwiki.wdka.nl/mediadesign/Candles_Tarot_Joysticks">Course syllabus</a><br />
<a href="https://media.xpub.nl/2023/si20.mp4" class="video">Video documentation</a><br />
<a href="https://issue.xpub.nl/20/">Mini site</a></p>
</details>
<details>
<p><summary>not-just-a-fair: Friday, Saturday, and Sunday 7-9 April</p>
<p><img src="2023/not-just-a-fair-xpub.jpg" /> </summary> XPUB students + staff will be on hand at the <a href="https://platformpost.nl/programma/events/alliances-not-just-a-fair">not-just-a-fair</a> .</p>
<p>Come meet students + staff in person, and sample recent and in-progress publications!</p>
</details>
</div>
</section>
<section id="public-servers" class="level2">
<h2>public servers</h2>
<div class="flex">
<details>
<p><summary> Special Issues</p>
<img src="images/issue2021.webp" alt="Special Issues" /> </summary> <a href="https://issue.xpub.nl">Special Issues</a> are multi-form publications related to a theme initated by a guest editor and produced collectively by XPUB first year students.
</details>
<details>
<p><summary> Graduation projects and theses</p>
<p><img src="images/grad.webp" title="Graduation projects" alt="Screenshot of project.xpub.nl" /></p>
</summary> <a href="https://project.xpub.nl">Graduation projects and theses</a>; representing the culmination of their two year Masters study, each XPUB student produces a graduation work and a thesis.
</details>
<details>
<p><summary> Course wiki</p>
<p><img src="images/wiki.webp" alt="Wiki" /></p>
</summary> <a href="https://pzwiki.wdka.nl/mediadesign/">The wiki</a> is the lifeblood of the course: visit the <a href="https://pzwiki.wdka.nl/mediadesign/Calendars:Networked_Media_Calendar">calendar</a> to get an idea of a typical week, or see the list of current <a href="https://pzwiki.wdka.nl/mediadesign/Students">students</a> to see traces and sketches of work in progress. NB: The wiki is shared with the lens-based master, items specific to XPUB are indicated by <em>XPUB1</em> and <em>XPUB2</em> (to indicate the first and second years). The wiki is an example of a self-hosted instance of <a href="https://mediawiki.org">mediawiki</a>, the free software that underpins Wikipedia.
</details>
<details>
<p><summary> Piet Zwart Institute</p>
<img src="images/pzwart.webp" alt="Piet Zwart Institute" /> </summary> XPUB is one of six masters programs collectively known as the <a href="https://www.pzwart.nl/experimental-publishing/">Piet Zwart Institute</a>.
</details>
<details>
<p><summary> Willem de Kooning Academy</p>
<img src="images/wdka.webp" alt="Willem de Kooning academy" /> </summary> XPUB is a part of the <a href="https://www.wdka.nl/programmes/master-media-design-experimental-publishing">Willem de Kooning</a> academy, and can be found on the fourth floor of the Wijnhaven building, with convenient access to the many facilities of the Art academy.
</details>
<details>
<p><summary> Gitea</p>
<img src="images/gitea.webp" alt="GIT" /> </summary> XPUB self-hosts a <a href="https://git.xpub.nl">gitea code respository</a>. This provides a public outlet to support the many code works done within the course such as <a href="https://git.xpub.nl/XPUB/xpub.nl/src/branch/master/index.md">this page</a>.
</details>
<details>
<p><summary> Etherpad</p>
<img src="images/pad.webp" alt="Etherpad" /> </summary> The <a href="https://pad.xpub.nl">XPUB etherpad</a> is another crucial piece of course self-hosted infrastructure. Etherpads are all about realtime group collaboration with a minimum of prescriptive structures. Pads are used heavily in the course as a means of collective note taking, planning, <a href="https://pzwiki.wdka.nl/mediadesign/Methods_xpub">writing and annotation</a>.
</details>
</div>
</section>
<section id="servers-for-students-staff" class="level2">
<h2>servers for students &amp; staff</h2>
<div class="flex">
<details>
<p><summary> Hub</p>
<img src="images/hub.320x.jpg" alt="hub" /> </summary> The <a href="https://hub.xpub.nl/">xpub hub</a> is a public relay to a collection of self-hosted and student-maintained local servers. Using a combination of <a href="https://tinc-vpn.org/">VPN</a> (virtual private network) and <a href="https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/">reverse proxy</a>, the hub enables experimentation with self-hosting, server portability, local-first and low power infrastructure and <a href="http://damaged.bleu255.com/Convivial_Computing/">convivial</a> and <a href="http://damaged.bleu255.com/Feminist_Technology/">feminist</a> server practices.
</details>
<details>
<p><summary> Zulip</p>
<img src="images/zulip.webp" alt="Zulip" /> </summary> The <a href="https://zulip.xpub.nl">zulip</a> server functions as a private bulletin board system for the XPUB community, and as a <a href="https://zulip.com/">self-hosted free software</a> acts as an alternative to centralized proprietary services like Slack and Discord.
</details>
<details>
<p><summary> Mailing list</p>
<p><img src="images/we.lurk.org.320x.jpg" /> </summary></p>
The course uses a mailing list provided by neighbor network <a href="https://we.lurk.org">lurk.org</a>.
</details>
<details>
<p><summary> Hotline</p>
<img src="images/jitsi.320x.jpg" title="hotline" alt="Hotline" /> </summary> The <a href="https://hotline.xpub.nl">hotline</a> is a self-hosted <a href="https://jitsi.org">Jitsi Meet</a> server, an alternative to proprietary services like Zoom, Teams, and Meet.
</details>
</div>
</section>
<section id="section-1" class="level2">
<h2>2022</h2>
<div class="flex">
<details>
<p><summary> XPUB@zinecamp</p>
<p><img src="2022/zinecamp2022.hotglue.png" /> </summary> XPUB was a proud participant in 2022s edition of <a href="https://zinecamp2022.hotglue.me/">zinecamp Rotterdam @ WORM</a>. Watch the <a href="https://media.xpub.nl/2022/zinecamp.mp4" class="video">video impression</a>, featuring current and past XPUB/Media Design staff and students: Clara Balaguer, Aymeric Mansoux, Mara Karagianni, joak and a plotter, and more!</p>
<a href="https://media.xpub.nl/2022/zinecamp.mp4" class="video">Video documentation</a>
</details>
<details>
<p><summary> Walkie Talkie</p>
<p><img src="2022/walkie-talkie-ref.320x.jpg" /> </summary></p>
<p>The XPUB 2022 graduation was hosted at <a href="https://worm.org/production/xpub-pzi-graduation-show/">Worm</a> and the academy.</p>
<a href="https://project.xpub.nl/">Project pages and theses</a><br />
<a href="https://media.xpub.nl/2022/gradshow/Walkie_Talkie.720p.mp4" class="video">Video documentation</a><br />
<a href="https://media.xpub.nl/2022/walkie-talkie-final.email.pdf">Catalog</a> Collective publication made with <a href="http://pagedjs.org">pagedjs</a>
</details>
<details>
<p><summary> Special Issue #19: garden ? @ leeszaal</p>
<p><img src="2022/xpub-si19-invite.320x.jpg" /> </summary></p>
<p>Special Issue #19 was launched in December, 2023 at <a href="https://www.leeszaalrotterdamwest.nl/">Leeszaal</a>, a local library and community center in Rotterdam West.</p>
<a href="https://issue.xpub.nl/19/index.html">Online publication</a><br />
<a href="https://media.xpub.nl/2022/si19.mp4" class="video">Video documentation</a>
</details>
<details>
<p><summary> Queerying Wikidata</p>
<p><img src="./2022/queeryingwikidata/xpub_queeryingwikidata_icon.png" alt="queerying wikidata" /> </summary> XPUB, Anaïs Berck and queer artivist/wikimedian Z. Blace join forces to explore automatic writing experiments querying and queering Wikidata.</p>
<a href="/2022/queeryingwikidata/">Workshop announcement</a><br />
<a href="https://media.xpub.nl/2022/queerying-wikidata.mp4" class="video">Recorded video presentation</a><br />
<a href="https://git.xpub.nl/XPUB/queerying_wikidata/src/branch/main/pad_wikidata_xpub.md">Archived notes</a>
</details>
<details>
<p><summary> Paged.js Workshop</p>
<p><img src="./images/650x400_thumb_pagedjs.png" /> </summary> Julie Blanc and Julien Taquet from the paged.js project share their experiences at the intersection of design practice and technical standards.</p>
<p><a href="https://pagedjs.org/">Paged.js</a> is a rendering tool for previewing, inspecting and designing a PDF in the browser, that is known for specifically accommodating designers using web-to-print techniques in their publications and book making practice. Julie and Julien both work (or have worked) as developers on the project, so the workshop gave students an opportunity to ask them about Paged.js as an open source project, and what it means to develop and maintain it. A nice example of paged.js in action is <a href="https://media.xpub.nl/2022/walkie-talkie-final.email.pdf">Walkie Talkie</a>, the 2022 XPUB graduation catalog.</p>
<a href="/2022/pagedjs/">Workshop announcement</a><br />
<a href="https://media.xpub.nl/2022/2022-10-13-pagedjs.html" class="video">Recorded video presentation</a>
</details>
<details>
<p><summary> X-unPub</p>
<p><img src="./2022/xunpub.320x.jpg" /> </summary> XPUB first years students presented their work during Special Issue #18 at a residency in Paris.</p>
<a href="https://unpublic.bandcamp.com/album/paris-22-june-2022?fbclid=IwAR0i1kkNAKDhjbYlqrWgB_Em58f0Q9PaPAbfhg0XiaZbguPMEafLhENfLuQ">Recorded audio presentation</a>
</details>
</div>
</section>
<section id="section-2" class="level2">
<h2>2021</h2>
<div class="flex">
<details>
<p><summary> SWAAT #00</p>
<p><img src="2021/SWAAT.320x.jpg" /> </summary> Software with an Attitude (SWAAT), Issue #00</p>
<p>Zine edited by Manetta Berends and Michael Murtaugh reflecting on the experiences of teaching programming and alternative tools in the context of the XPUB <a href="https://pzwiki.wdka.nl/mediadesign/Prototyping">Prototyping</a> class.</p>
<p><a href="https://media.xpub.nl/2021/SWAAT-00.pdf">Zine (pdf)</a><br />
<a href="https://media.xpub.nl/2021/SWAAT-00-book.pdf">Printable A5 booklet (pdf)</a></p>
</details>
<details>
<p><summary> Screen Walk with Aymeric Mansoux and Roel Roscam-Abbing</p>
<p><img src="images/dropinvsengagement.320x.jpg" /> </summary> Online presentation by Aymeric Mansoux &amp; Roel Roscam-Abbing including a description of XPUB as an example of making “systemic shifts” with alternative infrastructure.</p>
<a href="https://thephotographersgallery.org.uk/whats-on/watch-screen-walk-aymeric-mansoux-and-roel-roscam-abbing" class="video">Recorded video presentation</a>
</details>
</div>
</section>
<section id="colophon" class="level2">
<h2>colophon</h2>
<p>This site is made with <a href="https://pandoc.org/">pandoc</a>, <a href="https://pandoc.org/MANUAL.html#pandocs-markdown">markdown</a>, and <a href="https://git.xpub.nl/XPUB/xpub.nl/">git</a>.</p>
</section>
<section id="about-the-course" class="level2">
<h2>about the course</h2>
<p>Questions? Please write to: l.j.drost-robbins@hr.nl.</p>
<audio src="2023/269583__deleted_user_3854053__bubble.mp3" controls class="audio_pop">
</audio>
<audio src="2023/319107__duffybro__pop-made-by-duffybro.mp3" controls class="audio_pop">
</audio>
<style>
@import url(2023/bubbles.css);
</style>
<script src="2023/bubbles.js"></script>
<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ns1="http://sozi.baierouge.fr" xmlns:cc="http://creativecommons.org/ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" id="bubble" xml:space="preserve" viewBox="0 0 20.7 20.7" version="1.1" inkscape:version="0.91 r13725">
<defs id="defs6"> <radialGradient id="radialGradient24" gradientUnits="userSpaceOnUse" cy="-2.6162" cx="42.002" gradientTransform="matrix(.56568 -.56568 .56568 .56568 -14.24 33.64)" r="8.4322"> <stop id="stop26" style="stop-color:#e8f4f7" offset="0"/> <stop id="stop28" style="stop-color:#e6f3f6" offset=".36860"/> <stop id="stop30" style="stop-color:#deeff3" offset=".56470"/> <stop id="stop32" style="stop-color:#d0e9ef" offset=".7216"/> <stop id="stop34" style="stop-color:#bddfe8" offset=".85880"/> <stop id="stop36" style="stop-color:#a4d4e0" offset=".98040"/> <stop id="stop38" style="stop-color:#9fd1de" offset="1"/> </radialGradient> <clipPath id="clipPath46"> <path id="path48" d="m0-0.44h17v17h-17v-17z" inkscape:connector-curvature="0"/> </clipPath> <mask id="mask50"> <g id="g52"> <g id="g54" clip-path="url(#clipPath46)"> <path id="path56" style="fill:#000000;fill-opacity:.67190" d="m0-0.44h17v17h-17v-17z" inkscape:connector-curvature="0"/> </g> </g> </mask> <clipPath id="clipPath62"> <path id="path64" d="m0-0.44h17v17h-17v-17z" inkscape:connector-curvature="0"/> </clipPath> <clipPath id="clipPath66"> <path id="path68" d="m0 0h17v17h-17v-17z" inkscape:connector-curvature="0"/> </clipPath> <clipPath id="clipPath96"> <path id="path98" d="m2 0.56h14v9h-14v-9z" inkscape:connector-curvature="0"/> </clipPath> <mask id="mask100"> <g id="g102"> <g id="g104" clip-path="url(#clipPath96)"> <path id="path106" style="fill:#000000;fill-opacity:.33980" d="m2 0.56h14v9h-14v-9z" inkscape:connector-curvature="0"/> </g> </g> </mask> <clipPath id="clipPath112"> <path id="path114" d="m2 0.56h14v9h-14v-9z" inkscape:connector-curvature="0"/> </clipPath> <clipPath id="clipPath116"> <path id="path118" d="m2 1h14v9h-14v-9z" inkscape:connector-curvature="0"/> </clipPath> </defs> <g id="g10" transform="matrix(1.25 0 0 -1.25 0 20.7)"> <g id="g12"> <g id="g14"> <g id="g16"> <g id="g22"> <path id="path40" style="fill-rule:evenodd;fill:url(#radialGradient24)" d="m16.359 8.279c0-2.239-0.785-4.145-2.359-5.719-1.602-1.574-3.508-2.359-5.719-2.359-2.242 0-4.148 0.785-5.719 2.359-1.574 1.574-2.363 3.48-2.363 5.719 0 2.242 0.789 4.148 2.363 5.722 1.571 1.571 3.477 2.36 5.719 2.36 2.211 0 4.117-0.789 5.719-2.36 1.574-1.574 2.359-3.48 2.359-5.722z" inkscape:connector-curvature="0"/> </g> </g> </g> <g id="g42"> <g id="g58" mask="url(#mask50)"> <g id="g70"> <g id="g72" clip-path="url(#clipPath62)"> <g id="g74" transform="translate(0 -0.44)"> <g id="g78"> <g id="g80" clip-path="url(#clipPath66)"> <g id="g82"> <g id="g84" transform="translate(0,17)"> <path id="path86" style="stroke:#ffffff;stroke-width:0.4;fill:none" d="m16.359-8.281c0-2.239-0.785-4.145-2.359-5.719-1.602-1.574-3.508-2.359-5.719-2.359-2.242 0-4.148 0.785-5.722 2.359-1.571 1.574-2.36 3.48-2.36 5.719 0 2.242 0.789 4.148 2.36 5.722 1.574 1.571 3.48 2.36 5.722 2.36 2.211 0 4.117-0.789 5.719-2.36 1.574-1.574 2.359-3.48 2.359-5.722z" inkscape:connector-curvature="0"/> </g> </g> </g> </g> </g> </g> </g> </g> </g> <path id="path88" style="fill-rule:evenodd;fill:#ffffff" d="m4.078 13.439c1.07-0.024 1.203-0.547 0.402-1.559-0.851-1.066-1.441-1.425-1.757-1.082-0.297 0.321-0.27 0.84 0.078 1.563 0.347 0.746 0.773 1.105 1.277 1.078z" inkscape:connector-curvature="0"/> <path id="path90" style="fill-rule:evenodd;fill:#ffffff" d="m2.32 10.001c0.266-0.027 0.348-0.23 0.239-0.601-0.106-0.375-0.25-0.492-0.438-0.36-0.187 0.133-0.254 0.333-0.199 0.598 0.078 0.293 0.211 0.414 0.398 0.363z" inkscape:connector-curvature="0"/> <g id="g92"> <g id="g108" mask="url(#mask100)"> <g id="g120"> <g id="g122" clip-path="url(#clipPath112)"> <g id="g124" transform="translate(0 -0.44)"> <g id="g128"> <g id="g130" clip-path="url(#clipPath116)"> <g id="g132"> <path id="path134" style="fill-rule:evenodd;fill:#ffffff" d="m14.48 7.121c0.454 0.934 0.708 1.797 0.758 2.598 0.16-0.824 0.082-1.758-0.238-2.801-0.641-2.051-2.121-3.57-4.441-4.559-1.731-0.746-3.586-0.691-5.559 0.161-0.941 0.406-1.723 0.886-2.34 1.441 0.469-0.391 1.113-0.711 1.942-0.961 1.757-0.535 3.679-0.426 5.757 0.32 1.895 0.692 3.266 1.961 4.121 3.801z" inkscape:connector-curvature="0"/> </g> </g> </g> </g> </g> </g> </g> </g> </g> </g> <metadata><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/><dc:publisher><cc:Agent rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher></cc:Work><cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/><cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/><cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/></cc:License></rdf:RDF></metadata>
</svg>
</section>
</body>
</html>

@ -0,0 +1,507 @@
---
title: xpubliverse
---
::: {.flex #intro}
<details open>
<summary>
XPUB is the Master of Arts in Fine Art and Design: Experimental
Publishing of the Piet Zwart Institute. XPUB focuses on the acts of
making things public and creating publics in the age of post-digital
networks.
</summary>
XPUBs interests in publishing are therefore twofold: first, publishing as the inquiry and participation into the technological frameworks, political context and cultural processes through which things are made public; and second, how these are, or can be, used to create publics.
[Read more on pzwart.nl](https://pzwart.nl/experimental-publishing/)
</details>
<details open>
<summary>
Welcome to the XPUB homepage with links to tools and webpages we use in
the course.
</summary>
An important part of the XPUB course is considering the implications of the technologies and tools we use, how the choices have an impact socially, environmentally, politically. In this spirit, rather than relying heavily on cloud services, XPUB (self-) hosts and maintains many of the servers and services that the course uses. Students learn and practice skills of programming and server maintenance in order to gain first hand experience with the materials of software and networks.
</details>
:::
<details open id="call_details">
<summary>
**[Making Things Bubblic 🫧: Experimental Publishing Graduation Show & Shop 2023]{.big}**
Opening Thursday 29th June (18:00 - 22:30)
Friday 30th June - Sunday 2nd July (12:00 - 18:00)
</summary>
<https://worm.org/production/opening-experimental-publishing-graduation-show-shop-2023-making-things-bubblic-%f0%9f%ab%a7/>
WORM S/ash Gallery
Boomgaardsstraat 69, Rotterdam
Opening: Thursday 29th June (18:00 - 22:30)
- 20:00 Commencement speech by Erica Gargaglione and Kimberley Cosmilla
- 21:00 Performance by mitsitron (mitsa chaida)
Expo: Friday 30th June - Sunday 2nd July (12:00 - 18:00)
- 12:00 - 13:00 on Friday + Saturday + Sunday
Free Collective lunch served daily, everyone is welcome!
Small loaf of Minor Stories by Chaeyoung Kim will be served on the side...
- 16:00 on Saturday
Performance by mitsitron (mitsa chaida)
<!--Opening Thursday 29th June 18:00
- Presentation 20:00 Commencement speech by Erica Gargaglione and Kimberley Cosmilla
- Performance 21:00 mitsitron (mitsa chaida)
Expo
- Friday + Saturday + Sunday: daily
- Saturday: performance 16:00 mitsitron (mitsa chaida)
-->
WARM UP: Broadcasts on [Radio WORM](https://radio.worm.org/), hosted by Ål Nik (Alexandra Nikolova) and Gersande Schellinx.
- Friday 23rd June 20:00 - 21:00
- Tuesday 27th June 19:00 - 20:00
</details>
<style>
.big {
font-size: 150%;
}
button.apply{
filter: drop-shadow(16px 16px 20px magenta);
}
a.video {
filter: drop-shadow(5px 5px 5px magenta);
}
#call_details {
max-width: unset;
}
div#call {
font-style: normal;
}
div#call span.phrase:last-of-type span.comma{
display: none;
}
strong{
color: magenta;
}
</style>
2023
------
::: {.flex}
<details>
<summary>Special Issue #21: Interim Release
![](2023/IMG_20230424_142511.resize.jpg)
</summary>
> Special Issue #21 starts from a single technical object: a teletype machine. The teletype is the meeting point between typewriters and computer interfaces, a first automated translator of letters into bits. Equipped with a keyboard, a transmitter and a punchcard read-writer, it is a historical link between early transmission technology such as the telegraph and the Internet of today.
Guest Editor: Martino Morandi
[Course syllabus](https://pzwiki.wdka.nl/mediadesign/TTY)
[Video documentation](https://media.xpub.nl/2023/20230424_si21_teletype_performance.mp4){.video}
</details>
<details>
<summary>Special Issue #20: Console
![](2023/console_box_opening.360x.jpg)
</summary>
Special Issue #20: Console, was launched March 31, 2023, at [Page Not Found](https://page-not-found.nl) in Den Haag.
[Course syllabus](https://pzwiki.wdka.nl/mediadesign/Candles_Tarot_Joysticks)
[Video documentation](https://media.xpub.nl/2023/si20.mp4){.video}
[Mini site](https://issue.xpub.nl/20/)
</details>
<details>
<summary>not-just-a-fair: Friday, Saturday, and Sunday 7-9 April
![](2023/not-just-a-fair-xpub.jpg)
</summary>
XPUB students + staff will be on hand at the [not-just-a-fair](https://platformpost.nl/programma/events/alliances-not-just-a-fair) .
Come meet students + staff in person, and sample recent and in-progress publications!
</details>
:::
public servers
--------------------
::: {.flex}
<details>
<summary>
Special Issues
![Special Issues](images/issue2021.webp)
</summary>
[Special Issues](https://issue.xpub.nl) are multi-form publications related to a theme initated by a guest editor and produced collectively by XPUB first year students.
</details>
<details>
<summary>
Graduation projects and theses
![Screenshot of project.xpub.nl](images/grad.webp "Graduation projects")
</summary>
[Graduation projects and theses](https://project.xpub.nl); representing the culmination of their two year Masters study, each XPUB student produces a graduation work and a thesis.
</details>
<details>
<summary>
Course wiki
![Wiki](images/wiki.webp)
</summary>
[The wiki](https://pzwiki.wdka.nl/mediadesign/) is the lifeblood of the course: visit the [calendar](https://pzwiki.wdka.nl/mediadesign/Calendars:Networked_Media_Calendar) to get an idea of a typical week, or see the list of current [students](https://pzwiki.wdka.nl/mediadesign/Students) to see traces and sketches of work in progress. NB: The wiki is shared with the lens-based master, items specific to XPUB are indicated by *XPUB1* and *XPUB2* (to indicate the first and second years). The wiki is an example of a self-hosted instance of [mediawiki](https://mediawiki.org), the free software that underpins Wikipedia.
</details>
<details>
<summary>
Piet Zwart Institute
![Piet Zwart Institute](images/pzwart.webp)
</summary>
XPUB is one of six masters programs collectively known as the [Piet Zwart Institute](https://www.pzwart.nl/experimental-publishing/).
</details>
<details>
<summary>
Willem de Kooning Academy
![Willem de Kooning academy](images/wdka.webp)
</summary>
XPUB is a part of the [Willem de Kooning](https://www.wdka.nl/programmes/master-media-design-experimental-publishing) academy, and can be found on the fourth floor of the Wijnhaven building, with convenient access to the many facilities of the Art academy.
</details>
<details>
<summary>
Gitea
![GIT](images/gitea.webp)
</summary>
XPUB self-hosts a [gitea code respository](https://git.xpub.nl). This provides a public outlet to support the many code works done within the course such as [this page](https://git.xpub.nl/XPUB/xpub.nl/src/branch/master/index.md).
</details>
<details>
<summary>
Etherpad
![Etherpad](images/pad.webp)
</summary>
The [XPUB etherpad](https://pad.xpub.nl) is another crucial piece of course self-hosted infrastructure. Etherpads are all about realtime group collaboration with a minimum of prescriptive structures. Pads are used heavily in the course as a means of collective note taking, planning, [writing and annotation](https://pzwiki.wdka.nl/mediadesign/Methods_xpub).
</details>
:::
servers for students & staff
------------------------------------
::: {.flex}
<details>
<summary>
Hub
![hub](images/hub.320x.jpg)
</summary>
The [xpub hub](https://hub.xpub.nl/) is a public relay to a collection of self-hosted and student-maintained local servers. Using a combination of [VPN](https://tinc-vpn.org/) (virtual private network) and [reverse proxy](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/), the hub enables experimentation with self-hosting, server portability, local-first and low power infrastructure and [convivial](http://damaged.bleu255.com/Convivial_Computing/) and [feminist](http://damaged.bleu255.com/Feminist_Technology/) server practices.
</details>
<details>
<summary>
Zulip
![Zulip](images/zulip.webp)
</summary>
The [zulip](https://zulip.xpub.nl) server functions as a private bulletin board system for the XPUB community, and as a [self-hosted free software](https://zulip.com/) acts as an alternative to centralized proprietary services like Slack and Discord.
</details>
<details>
<summary>
Mailing list
![](images/we.lurk.org.320x.jpg)
</summary>
The course uses a mailing list provided by neighbor network [lurk.org](https://we.lurk.org).
</details>
<details>
<summary>
Hotline
![Hotline](images/jitsi.320x.jpg "hotline")
</summary>
The [hotline](https://hotline.xpub.nl) is a self-hosted [Jitsi Meet](https://jitsi.org) server, an alternative to proprietary services like Zoom, Teams, and Meet.
</details>
:::
2022
------
::: {.flex}
<details>
<summary>
XPUB@zinecamp
![](2022/zinecamp2022.hotglue.png)
</summary>
XPUB was a proud participant in 2022's edition of [zinecamp Rotterdam @ WORM](https://zinecamp2022.hotglue.me/). Watch the [video impression](https://media.xpub.nl/2022/zinecamp.mp4){.video}, featuring current and past XPUB/Media Design staff and students: Clara Balaguer, Aymeric Mansoux, Mara Karagianni, joak and a plotter, and more!
[Video documentation](https://media.xpub.nl/2022/zinecamp.mp4){.video}
</details>
<details>
<summary>
Walkie Talkie
![](2022/walkie-talkie-ref.320x.jpg)
</summary>
The XPUB 2022 graduation was hosted at [Worm](https://worm.org/production/xpub-pzi-graduation-show/) and the academy.
[Project pages and theses](https://project.xpub.nl/)
[Video documentation](https://media.xpub.nl/2022/gradshow/Walkie_Talkie.720p.mp4){.video}
[Catalog](https://media.xpub.nl/2022/walkie-talkie-final.email.pdf) Collective publication made with [pagedjs](http://pagedjs.org)
</details>
<details>
<summary>
Special Issue #19: garden ? @ leeszaal
![](2022/xpub-si19-invite.320x.jpg)
</summary>
Special Issue #19 was launched in December, 2023 at [Leeszaal](https://www.leeszaalrotterdamwest.nl/), a local library and community center in Rotterdam West.
[Online publication](https://issue.xpub.nl/19/index.html)
[Video documentation](https://media.xpub.nl/2022/si19.mp4){.video}
</details>
<details>
<summary>
Queerying Wikidata
![queerying wikidata](./2022/queeryingwikidata/xpub_queeryingwikidata_icon.png)
</summary>
XPUB, Anaïs Berck and queer artivist/wikimedian Z. Blace join forces to explore automatic writing experiments querying and queering Wikidata.
[Workshop announcement](/2022/queeryingwikidata/)
[Recorded video presentation](https://media.xpub.nl/2022/queerying-wikidata.mp4){.video}
[Archived notes](https://git.xpub.nl/XPUB/queerying_wikidata/src/branch/main/pad_wikidata_xpub.md)
</details>
<details>
<summary>
Paged.js Workshop
![](./images/650x400_thumb_pagedjs.png)
</summary>
Julie Blanc and Julien Taquet from the paged.js project share their experiences at the intersection of design practice and technical standards.
[Paged.js](https://pagedjs.org/) is a rendering tool for previewing, inspecting and designing a PDF in the browser, that is known for specifically accommodating designers using web-to-print techniques in their publications and book making practice. Julie and Julien both work (or have worked) as developers on the project, so the workshop gave students an opportunity to ask them about Paged.js as an open source project, and what it means to develop and maintain it. A nice example of paged.js in action is [Walkie Talkie](https://media.xpub.nl/2022/walkie-talkie-final.email.pdf), the 2022 XPUB graduation catalog.
[Workshop announcement](/2022/pagedjs/)
[Recorded video presentation](https://media.xpub.nl/2022/2022-10-13-pagedjs.html){.video}
</details>
<details>
<summary>
X-unPub
![](./2022/xunpub.320x.jpg)
</summary>
XPUB first years students presented their work during Special Issue #18 at a residency in Paris.
[Recorded audio presentation](https://unpublic.bandcamp.com/album/paris-22-june-2022?fbclid=IwAR0i1kkNAKDhjbYlqrWgB_Em58f0Q9PaPAbfhg0XiaZbguPMEafLhENfLuQ)
</details>
:::
2021
------
::: {.flex}
<details>
<summary>
SWAAT #00
![](2021/SWAAT.320x.jpg)
</summary>
Software with an Attitude (SWAAT), Issue #00
Zine edited by Manetta Berends and Michael Murtaugh reflecting on the experiences of teaching programming and alternative tools in the context of the XPUB [Prototyping](https://pzwiki.wdka.nl/mediadesign/Prototyping) class.
[Zine (pdf)](https://media.xpub.nl/2021/SWAAT-00.pdf)
[Printable A5 booklet (pdf)](https://media.xpub.nl/2021/SWAAT-00-book.pdf)
</details>
<details>
<summary>
Screen Walk with Aymeric Mansoux and Roel Roscam-Abbing
![](images/dropinvsengagement.320x.jpg)
</summary>
Online presentation by Aymeric Mansoux & Roel Roscam-Abbing including a description of XPUB as an example of making "systemic shifts" with alternative infrastructure.
[Recorded video presentation](https://thephotographersgallery.org.uk/whats-on/watch-screen-walk-aymeric-mansoux-and-roel-roscam-abbing){.video}
</details>
:::
colophon
------------
This site is made with [pandoc](https://pandoc.org/), [markdown](https://pandoc.org/MANUAL.html#pandocs-markdown), and [git](https://git.xpub.nl/XPUB/xpub.nl/).
about the course
-------------------------
Questions? Please write to: l.j.drost-robbins@hr.nl.
<audio src="2023/269583__deleted_user_3854053__bubble.mp3" controls class="audio_pop"></audio>
<audio src="2023/319107__duffybro__pop-made-by-duffybro.mp3" controls class="audio_pop"></audio>
<style>
@import url(2023/bubbles.css);
</style>
<script src="2023/bubbles.js"></script>
<svg xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ns1="http://sozi.baierouge.fr" xmlns:cc="http://creativecommons.org/ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:dc="http://purl.org/dc/elements/1.1/" id="bubble" xml:space="preserve" viewBox="0 0 20.7 20.7" version="1.1" inkscape:version="0.91 r13725">
<defs id="defs6">
<radialGradient id="radialGradient24" gradientUnits="userSpaceOnUse" cy="-2.6162" cx="42.002" gradientTransform="matrix(.56568 -.56568 .56568 .56568 -14.24 33.64)" r="8.4322">
<stop id="stop26" style="stop-color:#e8f4f7" offset="0"/>
<stop id="stop28" style="stop-color:#e6f3f6" offset=".36860"/>
<stop id="stop30" style="stop-color:#deeff3" offset=".56470"/>
<stop id="stop32" style="stop-color:#d0e9ef" offset=".7216"/>
<stop id="stop34" style="stop-color:#bddfe8" offset=".85880"/>
<stop id="stop36" style="stop-color:#a4d4e0" offset=".98040"/>
<stop id="stop38" style="stop-color:#9fd1de" offset="1"/>
</radialGradient>
<clipPath id="clipPath46">
<path id="path48" d="m0-0.44h17v17h-17v-17z" inkscape:connector-curvature="0"/>
</clipPath>
<mask id="mask50">
<g id="g52">
<g id="g54" clip-path="url(#clipPath46)">
<path id="path56" style="fill:#000000;fill-opacity:.67190" d="m0-0.44h17v17h-17v-17z" inkscape:connector-curvature="0"/>
</g>
</g>
</mask>
<clipPath id="clipPath62">
<path id="path64" d="m0-0.44h17v17h-17v-17z" inkscape:connector-curvature="0"/>
</clipPath>
<clipPath id="clipPath66">
<path id="path68" d="m0 0h17v17h-17v-17z" inkscape:connector-curvature="0"/>
</clipPath>
<clipPath id="clipPath96">
<path id="path98" d="m2 0.56h14v9h-14v-9z" inkscape:connector-curvature="0"/>
</clipPath>
<mask id="mask100">
<g id="g102">
<g id="g104" clip-path="url(#clipPath96)">
<path id="path106" style="fill:#000000;fill-opacity:.33980" d="m2 0.56h14v9h-14v-9z" inkscape:connector-curvature="0"/>
</g>
</g>
</mask>
<clipPath id="clipPath112">
<path id="path114" d="m2 0.56h14v9h-14v-9z" inkscape:connector-curvature="0"/>
</clipPath>
<clipPath id="clipPath116">
<path id="path118" d="m2 1h14v9h-14v-9z" inkscape:connector-curvature="0"/>
</clipPath>
</defs>
<g id="g10" transform="matrix(1.25 0 0 -1.25 0 20.7)">
<g id="g12">
<g id="g14">
<g id="g16">
<g id="g22">
<path id="path40" style="fill-rule:evenodd;fill:url(#radialGradient24)" d="m16.359 8.279c0-2.239-0.785-4.145-2.359-5.719-1.602-1.574-3.508-2.359-5.719-2.359-2.242 0-4.148 0.785-5.719 2.359-1.574 1.574-2.363 3.48-2.363 5.719 0 2.242 0.789 4.148 2.363 5.722 1.571 1.571 3.477 2.36 5.719 2.36 2.211 0 4.117-0.789 5.719-2.36 1.574-1.574 2.359-3.48 2.359-5.722z" inkscape:connector-curvature="0"/>
</g>
</g>
</g>
<g id="g42">
<g id="g58" mask="url(#mask50)">
<g id="g70">
<g id="g72" clip-path="url(#clipPath62)">
<g id="g74" transform="translate(0 -0.44)">
<g id="g78">
<g id="g80" clip-path="url(#clipPath66)">
<g id="g82">
<g id="g84" transform="translate(0,17)">
<path id="path86" style="stroke:#ffffff;stroke-width:0.4;fill:none" d="m16.359-8.281c0-2.239-0.785-4.145-2.359-5.719-1.602-1.574-3.508-2.359-5.719-2.359-2.242 0-4.148 0.785-5.722 2.359-1.571 1.574-2.36 3.48-2.36 5.719 0 2.242 0.789 4.148 2.36 5.722 1.574 1.571 3.48 2.36 5.722 2.36 2.211 0 4.117-0.789 5.719-2.36 1.574-1.574 2.359-3.48 2.359-5.722z" inkscape:connector-curvature="0"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<path id="path88" style="fill-rule:evenodd;fill:#ffffff" d="m4.078 13.439c1.07-0.024 1.203-0.547 0.402-1.559-0.851-1.066-1.441-1.425-1.757-1.082-0.297 0.321-0.27 0.84 0.078 1.563 0.347 0.746 0.773 1.105 1.277 1.078z" inkscape:connector-curvature="0"/>
<path id="path90" style="fill-rule:evenodd;fill:#ffffff" d="m2.32 10.001c0.266-0.027 0.348-0.23 0.239-0.601-0.106-0.375-0.25-0.492-0.438-0.36-0.187 0.133-0.254 0.333-0.199 0.598 0.078 0.293 0.211 0.414 0.398 0.363z" inkscape:connector-curvature="0"/>
<g id="g92">
<g id="g108" mask="url(#mask100)">
<g id="g120">
<g id="g122" clip-path="url(#clipPath112)">
<g id="g124" transform="translate(0 -0.44)">
<g id="g128">
<g id="g130" clip-path="url(#clipPath116)">
<g id="g132">
<path id="path134" style="fill-rule:evenodd;fill:#ffffff" d="m14.48 7.121c0.454 0.934 0.708 1.797 0.758 2.598 0.16-0.824 0.082-1.758-0.238-2.801-0.641-2.051-2.121-3.57-4.441-4.559-1.731-0.746-3.586-0.691-5.559 0.161-0.941 0.406-1.723 0.886-2.34 1.441 0.469-0.391 1.113-0.711 1.942-0.961 1.757-0.535 3.679-0.426 5.757 0.32 1.895 0.692 3.266 1.961 4.121 3.801z" inkscape:connector-curvature="0"/>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
<metadata><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/><dc:publisher><cc:Agent rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher></cc:Work><cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/><cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/><cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/></cc:License></rdf:RDF></metadata></svg>

@ -1,10 +1,20 @@
index.html: index.md
%.html: %.md
pandoc --from markdown-implicit_figures+auto_identifiers \
--section-divs \
--to html5 \
--css index.css \
--standalone index.md \
-o index.html
--standalone $< \
-o $@
# index.html: index.md
# pandoc --from markdown-implicit_figures+auto_identifiers \
# --section-divs \
# --to html5 \
# --css index.css \
# --standalone index.md \
# -o index.html
all: index.json

Loading…
Cancel
Save