@ -1,5 +0,0 @@ |
|||
# anarchive |
|||
|
|||
> !!! THIS IS NOT THE LIVE ANARCHIVE !!! |
|||
|
|||
This was a snapshot taken to help facilitate local development of a custom theme. |
@ -1,450 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<rss version="2.0"> |
|||
<channel> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html</link> |
|||
<description>Collective log writing using XMPP chat groups and LogBot.</description> |
|||
<lastBuildDate>Wednesday, 02. June 2021 11:49AM</lastBuildDate> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#0</link> |
|||
<description><img src="images/mappingz.jpeg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#1</link> |
|||
<description>Crisis. A word that we have heard over an over. But that now has completely different weight. What does it implies right now in the wake of a planetary zoonotic pandemic?. In the same way we want to relearn what “crisis” implies right now, we also want to relearn what "everyday technology” might mean in the same way.</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#10</link> |
|||
<description>discussing potential topics, {food/tech/other(?)} sovereignty - how do they relate? what does it mean in the context of NL? what has been done? https://sobtec.gitbooks.io/sobtec2/content/releases/web/sobtech2-EN-with-covers-web-150dpi-2018-01-10-v2.pdf</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#11</link> |
|||
<description><img src="images/inglesfrancesgrande.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#12</link> |
|||
<description>nyeleni.org - newsletter no 43 - Food Sovereignty in a time of pandemic https://nyeleni.org/spip.php?rubrique224</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#13</link> |
|||
<description>FOOD SOVEREIGNTY is the right of peoples to healthy and culturally appropriate food produced through ecologically sound and sustainable methods, and their right to define their own food and agriculture systems. https://www.boerengroep.nl/topics/foodsovereignty/</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#14</link> |
|||
<description>https://degrowth.nl - The restless expansion of our economies is causing unprecedented crises and threatening our very existence. How do we confront the contradictions between endless economic growth and the ecologi-cal boundaries of our planet? What kind of society would ensure a good life for all, without wealth and power being hoarded by the few? How can we enable a just transition that halts over-ex-traction, over-production and over-consumption? https://static1.squarespace.com/static/5fe0bb74fbf4ee0481e60605/t/5ffd79745e7b3b04e40a4599/1610450192286/Degrowth-Call-English</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#15</link> |
|||
<description><img src="images/degrowth.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#16</link> |
|||
<description><img src="images/topics-degrowth.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#17</link> |
|||
<description>Declaration of Digital Autonomy (draft 0.1): We demand a world in which technology is created to protect and empower the people who use it. Our technology must respect the rights and freedoms of those users. We need to take control for the purpose of collectively building a better world in which technology works in service to the good of human kind, protecting our rights and digital autonomy as individuals - https://techautonomy.org</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#18</link> |
|||
<description>communal software, renamed https://communalsoftware.codeberg.page</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#19</link> |
|||
<description>Cooperative technology - By "cooperative technology", we mean technology that is constructed by and for the people whose lives are affected by its use. While this builds on the Free and Open Source Software movement, we aim to apply the same principles to hardware as well, although the criteria by which we evaluate hardware and software will of course not be identical. It is not sufficient to narrowly focus on the people who directly interact with computers. Cooperative software which is run on a server should not be controlled solely by the administrator of the server, but also by the people who interact with the server over a network. - https://cooperativetechnology.codeberg.page</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#2</link> |
|||
<description><img src="images/ZIlViwyURwm96rH3DtuEqA.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#20</link> |
|||
<description><img src="images/solarpunkcool.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#21</link> |
|||
<description>Solarpunk Magic Computer Club! https://solarpunk.cool/magic/computer/club/</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#22</link> |
|||
<description>Technology, taught collectively: https://techlearningcollective.com</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#23</link> |
|||
<description>Tech Learning Collective is an apprenticeship-based technology school for radical organizers founded in New York City that provides a security-first IT infrastructure curriculum to otherwise underserved communities and organizations advancing social justice causes. We train politically self-motivated individuals in the arts of hypermedia, Information Technology, and radical political practice. Founded and operated exclusively by radical queer and femme technologists, we offer unparalleled free, by-donation, and low-cost computer classes on topics ranging from fundamental computer literacy to the same offensive computer hacking techniques used by national intelligence agencies and military powers (cyber armies). Our students are primarily people of marginalized groups and other individuals who are politically engaged. Unlike coding bootcamps that focus on moving the highest number of students through rote memorization exercises for the goal of job placement, Tech Learning Collective teachers facilitate foundational skill building through Socratic discussion and kinetic, experience-based training.</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#25</link> |
|||
<description><img src="images/image.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#26</link> |
|||
<description><img src="images/kalemarx.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#27</link> |
|||
<description><img src="images/printingoverprofit.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#28</link> |
|||
<description><img src="images/4c0a3354-d8f4-4741-a9a1-c6905b7622b5.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#29</link> |
|||
<description>Stichting Vredestuin - Bij de inrichting van de tuinen wordt gebruik gemaakt van permacultuur-principes, zoals het sluiten van kringlopen, het gebruik van nuttige ecologische relaties tussen planten en andere organismen in de tuin, het ontwikkelen van een hoge mate van biodiversiteit, het gebruik van hernieuwbare grondstoffen en diensten en de zonering van en interactie tussen verschillende plantenlagen. De zorg voor de aarde en voor de medemens staat centraal bij de inrichting van de tuin. - https://vredestuin.org/about/</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#3</link> |
|||
<description><iframe src="pdf/Lynn_Margulis,_Dorion_Sagan_(auth.)_-_Slanted_Truths__Essays_on_Gaia,_Symbiosis_and_Evolution_(1997,_Springer_New_York)_-_libgen.lc.pdf"></iframe></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#30</link> |
|||
<description><img src="images/vredestuin.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#31</link> |
|||
<description>Educatieve tuin de Enk - Op de educatieve tuin aan De Enk is het altijd gezellig! Kinderen krijgen les op de tuin en wijkbewoners zijn welkom tijdens de activiteiten of om een fijne wandeling te maken. - https://www.natuurstad.nl/de-enk</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#32</link> |
|||
<description><img src="images/de_enk.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#33</link> |
|||
<description>Jeroen Bakt Brood - Jeroen van Wisse bakt langgerezen desembrood. Ergens in 2014 begon dat thuis, maar sinds 20 juni 2015 is er ook een winkel. Het brood van Jeroen krijgt alle tijd om smaak te ontwikkelen; de rijstijd is standaard zo'n 12 - 48 uur. Daarna wordt het op hoge temperatuur gebakken, waardoor het een zeer harde en knapperige korst krijgt. Het brood heeft een volle, 'ouderwetse' smaak en een ongelijkmatig kruim, met her en der grote luchtbellen. - http://www.jeroenbaktbrood.nl</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#34</link> |
|||
<description>Biobulkbende - Biobulkbende is een vereniging die volledig door zijn leden wordt bestuurd en gerund. Als vereniging kopen we collectief biologisch voedsel in van lokale producenten en distributeurs. Ons huidige systeem van voedselproductie zit vol gebreken en kwetsbaarheden. Daarom vinden wij het belangrijk om meer controle te krijgen over het voedsel dat we kopen en consumeren. Voedsel gaat niet alleen over geld, toegang tot voedsel hoort niet afhankelijk te zijn van ondoordringbare en ondoorgrondelijke logistiek, en overdadige verpakkingen zijn niet vanzelfsprekend. Toegang tot hoogwaardig, biologisch en betaalbaar voedsel is belangrijk voor ons en we vinden dat iedereen er recht op heeft. - https://biobulkbende.org</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#35</link> |
|||
<description><img src="images/about_1_large.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#36</link> |
|||
<description>GroenGoed Rotterdam - Tuinieren voor een ecologische en menswaardige samenleving. GroenGoed draagt bij aan een stad waarin we in harmonie leven met de Aarde en met elkaar. Dat doen we op een zo concreet mogelijke manier: in buurtmoestuinen verbouwen we groenten en kruiden en telen we fruit voor de zelfvoorziening van iedereen die mee wil doen. - https://groengoedrotterdam.com/manifest-groen-is-goed/</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#37</link> |
|||
<description>Posthuman glossary - rosi braidotti - The material conditions of the everyday even the most routine human activities, such as purchasing plastics, impact human and non-human lives across vast geographic and temporal scales, extending even to the bottom of the sea (Alaimo 2016). The bizarre enormity of the effects of the most minute everyday actions underscores the urgent need for rethinking ethics and politics in the Anthropocene, an epoch in which human activities have profoundly altered the planet.</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#38</link> |
|||
<description>documenta 15 - documenta fifteen in relation to lumbung: The collaborative work towards the exhibition is like working together in a kitchen. The lumbung members map and recognize different skills, interests and knowledge, treating them as ingredients to be combined with others. They join working groups to shape all aspects that make up documenta fifteen, like education, publications, public program, and many more, thus creating different recipes. Following this analogy, the 100 days of documenta fifteen in Kassel will be the moment when this kitchen presents its different dishes in form of a big feast, open to the public to enjoy.</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#39</link> |
|||
<description>on building a thing: (writing a new recipe, writing a new computer program - examples of technology) and using that thing (cooking from the recipe, running the computer program) is a wonderful loop in which, you are affected by the thing and also determining the thing you are making. In other words, the choices you take in building affect how you behave and how you are affected when using the thing which in turn, feeds back into the making of the thing. In this loop you are revisting old thoughts/skills/feelings from the first idea when you built the thing but also experiening each change in the thing as you change it - which gives a feeling of building up skill and domain specific knowledge. It's mostly fun.</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#4</link> |
|||
<description><img src="images/book.jpeg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#40</link> |
|||
<description>uri gordon: "technologies are not merely aids to human activity, but also powerful forces acting to reshape that activity and its meaning" // "the construction of a technical system that involves human beings as operating parts brings a reconstruction of social roles and relationships" // "the new system’s own operating requirements: it simply will not work unless human behavior changes to suit its form and process"</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#41</link> |
|||
<description>convivial tools: A basic element which enters into Illich’s very definition of convivial tools (note: technology) is that they increase the user’s autonomy. We can thus consider the capacity to promote autonomy to be in itself a fundamental characteristic of convivial tools.</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#42</link> |
|||
<description>illich: mastery of skill does not yet imply a monopoly of understanding. One can understand fully what a goldsmith does without being one oneself. Men do not have to be cooks to know how to prepare food. This combination of widely shared information and competence for using it is characteristic of a society in whichconvivial tools prevail</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#43</link> |
|||
<description>I think we shouldn’t eulogize friction for friction’s sake, because friction, in itself, is just user’s frustration. We have to be able to recognize elegance and generate autonomous convenience for ourselves. We shouldn’t deny a computer the possibility to take decisions for us, we just have to be aware of how such decision-making takes place. Programmability is still at the core of computers, and that is where we can find full read-write computer literacy. - https://theusercondition.computer</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#44</link> |
|||
<description>The Coconut Revolution ~ Bougainville Revolutionary Army - https://www.dailymotion.com/video/x2x5eul</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#45</link> |
|||
<description><img src="images/acf99a14-fcdd-4792-a0f1-97afc6b48056.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#46</link> |
|||
<description><img src="images/soSOPNhORay2dyqrc6-lFg.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#47</link> |
|||
<description><iframe src="pdf/berry-computer.pdf"></iframe></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#48</link> |
|||
<description><img src="images/3040olives.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#49</link> |
|||
<description><img src="images/signscentralise.jpeg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#5</link> |
|||
<description><img src="images/fizzing.jpeg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#50</link> |
|||
<description><img src="images/masters-tools.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#51</link> |
|||
<description>Cosmic Crisp is a crazy apple - Intellectual property and trademark protections for fruit-growing plants are on the rise—and so are the lawsuits https://thecounter.org/intellectual-property-trademark-ip-law-fruit-cosmic-crisp-cotton-candy-grapes/?fbclid=IwAR0ys75FVLWlTcuVmaibt_XB-f21RFw4qwz4PRcZswSWWwi3ria2WEDNS1c</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#52</link> |
|||
<description><img src="images/cosmic.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#53</link> |
|||
<description><img src="images/Bananas_1.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#6</link> |
|||
<description><img src="images/newsite.jpeg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#7</link> |
|||
<description><img src="images/peppers.jpeg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#8</link> |
|||
<description><img src="images/sundaychillz.jpeg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#54</link> |
|||
<description>A delegation of the Zapatistas is sailing for Europe. Not to conquer, but to connect and to join hands with other insurgents and join them in struggle: https://en.labournet.tv/zapatista-delegation-sent</description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#55</link> |
|||
<description><img src="images/bf54b120-ba17-4979-8ee9-04c2c0b776a9.png"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
<item> |
|||
<title>Relearn 2021 anarchive</title> |
|||
<link>https://vvvvvvaria.org/logs/relearn-2021-anarchive/index.html#56</link> |
|||
<description><img src="images/ZAPATISTA-800x480.jpg"></description> |
|||
<dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">LogBot</dc:creator> |
|||
<pubDate></pubDate> |
|||
</item> |
|||
|
|||
</channel> |
|||
</rss> |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 7.2 MiB |
Before Width: | Height: | Size: 149 KiB |
Before Width: | Height: | Size: 371 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 380 KiB |
Before Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 371 KiB |
Before Width: | Height: | Size: 445 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 163 KiB |
Before Width: | Height: | Size: 310 KiB |
Before Width: | Height: | Size: 6.4 MiB |
Before Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 943 KiB |
Before Width: | Height: | Size: 128 KiB |
Before Width: | Height: | Size: 169 KiB |
Before Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 155 KiB |
Before Width: | Height: | Size: 340 KiB |
Before Width: | Height: | Size: 499 KiB |
Before Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 47 KiB |
@ -1,459 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf8"> |
|||
<title>Relearn 2021 anarchive - (Generator: LogBot)</title> |
|||
<link rel="stylesheet" type="text/css" href="stylesheet.css"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|||
</head> |
|||
<body> |
|||
<h1>Relearn 2021 anarchive</h1> |
|||
<div id="container"> |
|||
|
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
<div style="display: none;">None</div> |
|||
|
|||
|
|||
|
|||
<div class="post"> |
|||
<p class="key">56</p> |
|||
<p class="message"><img src="images/ZAPATISTA-800x480.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">55</p> |
|||
<p class="message"><img src="images/bf54b120-ba17-4979-8ee9-04c2c0b776a9.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">54</p> |
|||
<p class="message">A delegation of the Zapatistas is sailing for Europe. Not to conquer, but to connect and to join hands with other insurgents and join them in struggle: https://en.labournet.tv/zapatista-delegation-sent</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">53</p> |
|||
<p class="message"><img src="images/Bananas_1.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">52</p> |
|||
<p class="message"><img src="images/cosmic.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">51</p> |
|||
<p class="message">Cosmic Crisp is a crazy apple - Intellectual property and trademark protections for fruit-growing plants are on the rise—and so are the lawsuits https://thecounter.org/intellectual-property-trademark-ip-law-fruit-cosmic-crisp-cotton-candy-grapes/?fbclid=IwAR0ys75FVLWlTcuVmaibt_XB-f21RFw4qwz4PRcZswSWWwi3ria2WEDNS1c</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">50</p> |
|||
<p class="message"><img src="images/masters-tools.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">49</p> |
|||
<p class="message"><img src="images/signscentralise.jpeg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">48</p> |
|||
<p class="message"><img src="images/3040olives.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">47</p> |
|||
<p class="message"><iframe src="pdf/berry-computer.pdf"></iframe></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">46</p> |
|||
<p class="message"><img src="images/soSOPNhORay2dyqrc6-lFg.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">45</p> |
|||
<p class="message"><img src="images/acf99a14-fcdd-4792-a0f1-97afc6b48056.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">44</p> |
|||
<p class="message">The Coconut Revolution ~ Bougainville Revolutionary Army - https://www.dailymotion.com/video/x2x5eul</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">43</p> |
|||
<p class="message">I think we shouldn’t eulogize friction for friction’s sake, because friction, in itself, is just user’s frustration. We have to be able to recognize elegance and generate autonomous convenience for ourselves. We shouldn’t deny a computer the possibility to take decisions for us, we just have to be aware of how such decision-making takes place. Programmability is still at the core of computers, and that is where we can find full read-write computer literacy. - https://theusercondition.computer</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">42</p> |
|||
<p class="message">illich: mastery of skill does not yet imply a monopoly of understanding. One can understand fully what a goldsmith does without being one oneself. Men do not have to be cooks to know how to prepare food. This combination of widely shared information and competence for using it is characteristic of a society in whichconvivial tools prevail</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">41</p> |
|||
<p class="message">convivial tools: A basic element which enters into Illich’s very definition of convivial tools (note: technology) is that they increase the user’s autonomy. We can thus consider the capacity to promote autonomy to be in itself a fundamental characteristic of convivial tools.</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">40</p> |
|||
<p class="message">uri gordon: "technologies are not merely aids to human activity, but also powerful forces acting to reshape that activity and its meaning" // "the construction of a technical system that involves human beings as operating parts brings a reconstruction of social roles and relationships" // "the new system’s own operating requirements: it simply will not work unless human behavior changes to suit its form and process"</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">39</p> |
|||
<p class="message">on building a thing: (writing a new recipe, writing a new computer program - examples of technology) and using that thing (cooking from the recipe, running the computer program) is a wonderful loop in which, you are affected by the thing and also determining the thing you are making. In other words, the choices you take in building affect how you behave and how you are affected when using the thing which in turn, feeds back into the making of the thing. In this loop you are revisting old thoughts/skills/feelings from the first idea when you built the thing but also experiening each change in the thing as you change it - which gives a feeling of building up skill and domain specific knowledge. It's mostly fun.</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">38</p> |
|||
<p class="message">documenta 15 - documenta fifteen in relation to lumbung: The collaborative work towards the exhibition is like working together in a kitchen. The lumbung members map and recognize different skills, interests and knowledge, treating them as ingredients to be combined with others. They join working groups to shape all aspects that make up documenta fifteen, like education, publications, public program, and many more, thus creating different recipes. Following this analogy, the 100 days of documenta fifteen in Kassel will be the moment when this kitchen presents its different dishes in form of a big feast, open to the public to enjoy.</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">37</p> |
|||
<p class="message">Posthuman glossary - rosi braidotti - The material conditions of the everyday even the most routine human activities, such as purchasing plastics, impact human and non-human lives across vast geographic and temporal scales, extending even to the bottom of the sea (Alaimo 2016). The bizarre enormity of the effects of the most minute everyday actions underscores the urgent need for rethinking ethics and politics in the Anthropocene, an epoch in which human activities have profoundly altered the planet.</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">36</p> |
|||
<p class="message">GroenGoed Rotterdam - Tuinieren voor een ecologische en menswaardige samenleving. GroenGoed draagt bij aan een stad waarin we in harmonie leven met de Aarde en met elkaar. Dat doen we op een zo concreet mogelijke manier: in buurtmoestuinen verbouwen we groenten en kruiden en telen we fruit voor de zelfvoorziening van iedereen die mee wil doen. - https://groengoedrotterdam.com/manifest-groen-is-goed/</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">35</p> |
|||
<p class="message"><img src="images/about_1_large.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">34</p> |
|||
<p class="message">Biobulkbende - Biobulkbende is een vereniging die volledig door zijn leden wordt bestuurd en gerund. Als vereniging kopen we collectief biologisch voedsel in van lokale producenten en distributeurs. Ons huidige systeem van voedselproductie zit vol gebreken en kwetsbaarheden. Daarom vinden wij het belangrijk om meer controle te krijgen over het voedsel dat we kopen en consumeren. Voedsel gaat niet alleen over geld, toegang tot voedsel hoort niet afhankelijk te zijn van ondoordringbare en ondoorgrondelijke logistiek, en overdadige verpakkingen zijn niet vanzelfsprekend. Toegang tot hoogwaardig, biologisch en betaalbaar voedsel is belangrijk voor ons en we vinden dat iedereen er recht op heeft. - https://biobulkbende.org</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">33</p> |
|||
<p class="message">Jeroen Bakt Brood - Jeroen van Wisse bakt langgerezen desembrood. Ergens in 2014 begon dat thuis, maar sinds 20 juni 2015 is er ook een winkel. Het brood van Jeroen krijgt alle tijd om smaak te ontwikkelen; de rijstijd is standaard zo'n 12 - 48 uur. Daarna wordt het op hoge temperatuur gebakken, waardoor het een zeer harde en knapperige korst krijgt. Het brood heeft een volle, 'ouderwetse' smaak en een ongelijkmatig kruim, met her en der grote luchtbellen. - http://www.jeroenbaktbrood.nl</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">32</p> |
|||
<p class="message"><img src="images/de_enk.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">31</p> |
|||
<p class="message">Educatieve tuin de Enk - Op de educatieve tuin aan De Enk is het altijd gezellig! Kinderen krijgen les op de tuin en wijkbewoners zijn welkom tijdens de activiteiten of om een fijne wandeling te maken. - https://www.natuurstad.nl/de-enk</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">30</p> |
|||
<p class="message"><img src="images/vredestuin.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">29</p> |
|||
<p class="message">Stichting Vredestuin - Bij de inrichting van de tuinen wordt gebruik gemaakt van permacultuur-principes, zoals het sluiten van kringlopen, het gebruik van nuttige ecologische relaties tussen planten en andere organismen in de tuin, het ontwikkelen van een hoge mate van biodiversiteit, het gebruik van hernieuwbare grondstoffen en diensten en de zonering van en interactie tussen verschillende plantenlagen. De zorg voor de aarde en voor de medemens staat centraal bij de inrichting van de tuin. - https://vredestuin.org/about/</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">28</p> |
|||
<p class="message"><img src="images/4c0a3354-d8f4-4741-a9a1-c6905b7622b5.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">27</p> |
|||
<p class="message"><img src="images/printingoverprofit.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">26</p> |
|||
<p class="message"><img src="images/kalemarx.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">25</p> |
|||
<p class="message"><img src="images/image.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">23</p> |
|||
<p class="message">Tech Learning Collective is an apprenticeship-based technology school for radical organizers founded in New York City that provides a security-first IT infrastructure curriculum to otherwise underserved communities and organizations advancing social justice causes. We train politically self-motivated individuals in the arts of hypermedia, Information Technology, and radical political practice. Founded and operated exclusively by radical queer and femme technologists, we offer unparalleled free, by-donation, and low-cost computer classes on topics ranging from fundamental computer literacy to the same offensive computer hacking techniques used by national intelligence agencies and military powers (cyber armies). Our students are primarily people of marginalized groups and other individuals who are politically engaged. Unlike coding bootcamps that focus on moving the highest number of students through rote memorization exercises for the goal of job placement, Tech Learning Collective teachers facilitate foundational skill building through Socratic discussion and kinetic, experience-based training.</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">22</p> |
|||
<p class="message">Technology, taught collectively: https://techlearningcollective.com</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">21</p> |
|||
<p class="message">Solarpunk Magic Computer Club! https://solarpunk.cool/magic/computer/club/</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">20</p> |
|||
<p class="message"><img src="images/solarpunkcool.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">19</p> |
|||
<p class="message">Cooperative technology - By "cooperative technology", we mean technology that is constructed by and for the people whose lives are affected by its use. While this builds on the Free and Open Source Software movement, we aim to apply the same principles to hardware as well, although the criteria by which we evaluate hardware and software will of course not be identical. It is not sufficient to narrowly focus on the people who directly interact with computers. Cooperative software which is run on a server should not be controlled solely by the administrator of the server, but also by the people who interact with the server over a network. - https://cooperativetechnology.codeberg.page</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">18</p> |
|||
<p class="message">communal software, renamed https://communalsoftware.codeberg.page</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">17</p> |
|||
<p class="message">Declaration of Digital Autonomy (draft 0.1): We demand a world in which technology is created to protect and empower the people who use it. Our technology must respect the rights and freedoms of those users. We need to take control for the purpose of collectively building a better world in which technology works in service to the good of human kind, protecting our rights and digital autonomy as individuals - https://techautonomy.org</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">16</p> |
|||
<p class="message"><img src="images/topics-degrowth.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">15</p> |
|||
<p class="message"><img src="images/degrowth.png"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">14</p> |
|||
<p class="message">https://degrowth.nl - The restless expansion of our economies is causing unprecedented crises and threatening our very existence. How do we confront the contradictions between endless economic growth and the ecologi-cal boundaries of our planet? What kind of society would ensure a good life for all, without wealth and power being hoarded by the few? How can we enable a just transition that halts over-ex-traction, over-production and over-consumption? https://static1.squarespace.com/static/5fe0bb74fbf4ee0481e60605/t/5ffd79745e7b3b04e40a4599/1610450192286/Degrowth-Call-English</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">13</p> |
|||
<p class="message">FOOD SOVEREIGNTY is the right of peoples to healthy and culturally appropriate food produced through ecologically sound and sustainable methods, and their right to define their own food and agriculture systems. https://www.boerengroep.nl/topics/foodsovereignty/</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">12</p> |
|||
<p class="message">nyeleni.org - newsletter no 43 - Food Sovereignty in a time of pandemic https://nyeleni.org/spip.php?rubrique224</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">11</p> |
|||
<p class="message"><img src="images/inglesfrancesgrande.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">10</p> |
|||
<p class="message">discussing potential topics, {food/tech/other(?)} sovereignty - how do they relate? what does it mean in the context of NL? what has been done? https://sobtec.gitbooks.io/sobtec2/content/releases/web/sobtech2-EN-with-covers-web-150dpi-2018-01-10-v2.pdf</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">8</p> |
|||
<p class="message"><img src="images/sundaychillz.jpeg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">7</p> |
|||
<p class="message"><img src="images/peppers.jpeg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">6</p> |
|||
<p class="message"><img src="images/newsite.jpeg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">5</p> |
|||
<p class="message"><img src="images/fizzing.jpeg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">4</p> |
|||
<p class="message"><img src="images/book.jpeg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">3</p> |
|||
<p class="message"><iframe src="pdf/Lynn_Margulis,_Dorion_Sagan_(auth.)_-_Slanted_Truths__Essays_on_Gaia,_Symbiosis_and_Evolution_(1997,_Springer_New_York)_-_libgen.lc.pdf"></iframe></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">2</p> |
|||
<p class="message"><img src="images/ZIlViwyURwm96rH3DtuEqA.jpg"></p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">1</p> |
|||
<p class="message">Crisis. A word that we have heard over an over. But that now has completely different weight. What does it implies right now in the wake of a planetary zoonotic pandemic?. In the same way we want to relearn what “crisis” implies right now, we also want to relearn what "everyday technology” might mean in the same way.</p> |
|||
</div> |
|||
|
|||
<div class="post"> |
|||
<p class="key">0</p> |
|||
<p class="message"><img src="images/mappingz.jpeg"></p> |
|||
</div> |
|||
|
|||
</div> |
|||
<footer></footer> |
|||
</body> |
|||
</html> |
@ -1,56 +0,0 @@ |
|||
@font-face{ |
|||
font-family: "font"; |
|||
src: url("font.ttf") format("truetype"); |
|||
} |
|||
|
|||
@font-face { |
|||
font-family: "ARK-ES DenseMedium"; |
|||
src: url("fonts/ARK-ES-DenseMedium.woff") format("woff"); |
|||
} |
|||
|
|||
@font-face { |
|||
font-family: "Inconsolata Regular"; |
|||
src: url("fonts/Inconsolata-Regular.otf") format("otf"); |
|||
} |
|||
|
|||
body { |
|||
margin: 1em 1em 3em 1em; |
|||
background-color: #f1eede; |
|||
font-family: "Inconsolata"; |
|||
font-size: 16px; |
|||
line-height: 1.6; |
|||
} |
|||
|
|||
h1 { |
|||
font-family: "ARK-ES DenseMedium"; |
|||
font-weight: normal; |
|||
font-size: 48px; |
|||
margin-top: 20px; |
|||
color: #3c4cac; |
|||
} |
|||
|
|||
.post { |
|||
max-width: 350px; |
|||
margin: 0.5em 0.5em; |
|||
float: left; |
|||
} |
|||
.post p.key { |
|||
margin: 2em 0 1em 5em; |
|||
font-size: 12px; |
|||
} |
|||
.post p.message { |
|||
float: left; |
|||
margin: 0; |
|||
} |
|||
img, |
|||
iframe, |
|||
audio, |
|||
video { |
|||
max-width: 80%; |
|||
height: auto; |
|||
clear: both; |
|||
margin: 0; |
|||
} |
|||
iframe{ |
|||
height: 440px; |
|||
} |
@ -1,82 +0,0 @@ |
|||
/* set slider dimension here */ |
|||
#slider { |
|||
width: 200px; |
|||
height: 200px; |
|||
} |
|||
|
|||
/* Basic solid color slider grip */ |
|||
.pathslider-grip { |
|||
width: 30px; |
|||
height: 15px; |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
background: #ddd; |
|||
font-size: 1px; |
|||
z-index: 10; |
|||
cursor: move; |
|||
border: 1px solid; |
|||
border-radius: 7px; |
|||
-webkit-box-shadow: 0px 1px 3px rgba(000,000,000,0.5), inset 0px 0px 1px rgba(255,255,255,0.6); |
|||
box-shadow: 0px 1px 3px rgba(000,000,000,0.5), inset 0px 0px 1px rgba(255,255,255,0.6); |
|||
} |
|||
|
|||
/* grip hover/sliding state */ |
|||
.pathslider-grip.sliding, .pathslider-grip:hover { |
|||
border-color: #8ce; |
|||
-webkit-box-shadow: 0 0 15px #8ce; |
|||
box-shadow: 0 0 15px #8ce; |
|||
} |
|||
|
|||
/* slider extra css - same as #slider above */ |
|||
.pathslider { |
|||
position: relative; |
|||
} |
|||
|
|||
/************* |
|||
grip styles |
|||
add these using the gripClass option |
|||
*************/ |
|||
/* shiny silver - sorta */ |
|||
.silver { |
|||
border-color: #949494; |
|||
background-color: #ebebeb; |
|||
background-image: -webkit-linear-gradient(top,#ffffff 0%,#ebebeb 50%,#dbdbdb 50%,#b5b5b5); |
|||
background-image: linear-gradient(top,#ffffff 0%,#ebebeb 50%,#dbdbdb 50%,#b5b5b5); |
|||
} |
|||
|
|||
/* shiny black */ |
|||
.black { |
|||
border-color: #000000 |
|||
background-color: #3b3b3b; |
|||
background-image: -webkit-linear-gradient(top,#a3a3a3 0%,#3b3b3b 50%,#242424 50%,#000000); |
|||
background-image: linear-gradient(top,#a3a3a3 0%,#3b3b3b 50%,#242424 50%,#000000); |
|||
} |
|||
|
|||
/* Small circular chrome knob |
|||
including ".pathslider-grip" to remove border & box shadow |
|||
*/ |
|||
.pathslider-grip.chrome1 { |
|||
width: 18px; |
|||
height: 18px; |
|||
border: 0; |
|||
border-radius: 0; |
|||
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAABI1BMVEUAAADHx8fNzc/29vbCwsOVlpfFxsbb29vp6enm5eX19vb6+vr///+vr6/Dw8K4uLjGxsbQ0NDR0dHh4eHl5uaqq6qlpaWoqqy+vr+9vb3e4OGTk5TIyMiSkpO9vb2kpabDw8SampzDw8O9vb62tratra7Ly8vW1tbk5OTKysrv8fLt7e3c3Nzi4uLd3d309PTv7+/o6Ojm5ufy8vPu7+/r6+zX2NnT09XS0tTk5Obh4eHP0NLKy83DxMX5+fr19fXz8/Xl5ube3+Dd3d/c3N7Z2tvW19jU1de+vr/3+Pjp6ura29zNztG7vL65uruztLWvsLGtra329vbw8PDh4uPLzc/HyMqysrLs7e3o6Orj4+PV1dfQ0dO4uLmoqKn7+/ujo6WIZbNwAAAAMXRSTlMA/v4F/v79kzcuFgkC9vHmsI9+ZRL99fHw7+7u7Ovj4+Hg19bNzMCooJ+Yi4p5SSYjiIrjEAAAASVJREFUGNMVz0OCxAAUANGfpG2MbSu27aTtmfufYtK1fLuCJgBg72g831bO3hoYQAuKvl+PPGkznWXHL/Um7KvfxVIUoZw9cZGLj0YhX93YZTkx4kJ9rArIZwvqDykTMi4nshZOKr9cZwiDtkQIhs2KrED5ikIlPehuDZzgDUdc4yNfG5NoBzKPx+mAsDhT9SlC4BkEcs80CHzJO0QgMBtxbVcgT6coy7qMaVqcNJuJjgz5LollRHJ0fcVPQsZyEEj/0kSObBxXF2ONpEi2BDe7uTy1ljRBajRN+mqpBNUsl0KexnVKIYOFap9UofZ0mBhBQfRI0ShBrhaTtV7bc80VQY20CVN5/oEibHBaLmceIs/LV8ODApotwGr9x9vL8+v7/h7gH5fyPZ6I/Z3zAAAAAElFTkSuQmCC'); |
|||
background-position: center center; |
|||
background-repeat: no-repeat; |
|||
-webkit-box-shadow: 0 0 0; |
|||
box-shadow: 0 0 0; |
|||
} |
|||
|
|||
/* Large curvy chrome slide */ |
|||
.pathslider-grip.chrome2 { |
|||
width: 57px; |
|||
height: 35px; |
|||
border: 0; |
|||
border-radius: 0; |
|||
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAAjCAMAAAAZi1JKAAAC/VBMVEUAAABHTE1dYmQ1OjsxNjcxNTdjbG9HTlBBRklWW142OzxWXF9HT1FXX2FHTlE4PT1QVlkuMzQ1OTozNzlWXF9cZWc0OTogJCVncXRfaWtcZGdnbnMxNTZTWl0fISNARUcWGhtUWFo1OTpncHMvMzRNUlVaY2VeZGZlbXFTWl1iam1UXF81OTpbYmVLUlU6Pz9VXF9KUVNZYGMrLzAqLi9JTlFfZWgpLS5haGo8QEMlKisuMjNiam0kKClYYGJhamxOU1UtMTJLUFNESkwyNzdPVlg4PD0dICE2OjtMUlVDSEopLC1SWFtRWFs6QEA7P0BsdHdqcXcZHR5ARUg2Oj1RWVs4Pj45Pz9pcHYfIyRpcXRVWVxKUlU6QEBlbXA6QEBcZGcoLC0ZHR4jJyhja24sMDEcHR8dHiDW297S2Nva3+LU2dzY3eCAiYvP1diKk5XR1tmus7Z8hYh5goRud3mgpajd4+Vxeny1ur3Eycyan6KDiIrc4eTL0NO8wsSVmZx+h4p0fX/f4+a/xsm5wcSirK6mq66Nl5mHkJKEjpCHjI56f4GosLOQlZeBi41ze35weHtqc3Xk6et4fH9na25kam3x9fjm7O+0vL+ut7mcpqiUnaCNkpR6hIZobnBkbW/z9/nj5+nY4eLIz9LCycu9xce/w8afp6qYoaSWm56PmZuPlJaLkJKJjY+DjI6ChohncHL5/f/v8vXf5OfHzM/Ey862u76ttbiao6aSm52LlZeMkZN/hYd+hIR9gYN3gIJ2foBsdXdocnRiaGtdZmhLUFLs8fPg5unL09XN0tWrsrSprrGfqauTmJuSl5mMlpiDjY9+g4V3gYN1f4FzeHtsdHdqb3JdY2VQVVf0+v3x9PXo7O+rs7anrK+jqKuWoKKYn6GSnJ57gYFtcnRaX2H7///3+fzq7vHW3t/Ax8q3vsCxurylrrCdo6aYnaCEiYx2e31wdHdgZWdYYGJUW13t9fja4+LO09awt7mjqq2coaSFio06PkCwtbhESkzKZSuAAAAAaHRSTlMAAgtECv7u2iwSBv738ue6hXo5IRb9/f327OjLx0UW/v79+O7n3srHw8O1r6mZmZGNenFoX1xbMiIdEP7w7N3Z1MzKtrOpn4NvaVRPQCr19PPz8fDu6uLh393b2tjS0ca9uLi3pZiNe60eDt4AAAYWSURBVDjLhZV1WFNhGMUvAkopIXZ3d3d3d3etgW1uykBYIDDYxpoYG13SJd0CUtIhWICNtB2P77YH5THPn3f73XO+9znvdxGVRm+5fGXHaA3kvxq9deS6S0t+/lFjy5CxY/efX7j8P6yW5syJK7S1Ry758WTgsSF3hIPHrrqwYNnfWY3RC2dOHD9YXtC5YuTAnocLhtzBPSWkaQ9Ztc54iRbAveJoaOhpaWktH6hpbHhQ+4vI4nkU6o72xuXqX/XODb7x1Ls+1zq09svgw4Zztm7XNDEx0QTtWGA8Z/PMjYaGZ04d2T2mmxYg8PJmPPvwZc9CNWkykR0lpWDzfXwIbg78rlqDAf1AkwaADAzugGr1m8VOwV8xeXkUjFWM4FnZmA1aqkBzaq3rYl6gff2ZL+P8WAVB3HRyliK7M1ssFldXVQrTPstab157aY3F4nAonBWF8Syg+6SOaj79Up9KMej8lyzXBmc7O7sid49Ej8ccNjulrIzGDr1V/OnqA4trLGasORZgCsVK6kXtv01pOW9cfFQMiuDHcnVraAkMemJv5hhullgS9jkiRU0Gv3lYaBEfEEvAolA4DIZCeRo4aEYfBDGdJvLOzcP6+r9yc7YrSvAISXIIJ5LCZaFtjU5OqbQwWUmw5cPCD68Crr9HY4GFvJJ8xfCdCLKof5hXfYx5HOu2CrRPMgvHe2aQ2KERqY2NqTR2Mqf109Wb4HmdgEZjwdSKIpXSI40QvRmDCp9JMe+ZroV27kEeiZAVb0viuaS10VLBUxnXBjwtrkFaczXJ8K67FzkD0VmtCIgS4KxZt1sSgjxC7pk5cPGeJB6/MqUtTZU2mRNsqRzRjet3CUCqTOuKFFMgLBl1X4CKc20oehRiD6Ajl0jMoJKrhQXJYVdprYUc8IS0KlJt6sOQsBRrEKNBJMZ9ATbOtSUIkipBW2I6nZcp77glCo0QBQvbi38jYyRM/jBkUw7+OZB+rwOfAOZYysUTSeV0F75c3F4pFArbnJJlv5LvMBJf6jBkWk5p9H0BmunmHhKOx3O5eFtiOYlOzhSJ2MlpnM+yNyUym8cq0k9NojDvcNEEal9kfU5S9H1vtP/tBHsikYjHA0mqoLqQRdUlwjCbSkubtOIe0lpN4l5gorFArs1xjPbyNgcyiehJtAXSk1TBI/Ors+WiMmFHmFPEjwn1kO8Yz82BnJTDrQcS0tqXQlogleck85s6azqcnNJoYRxZL9JcSfpgcs3Jw5BJNSSGxBvOWeQBEyqFsxI906kuVaImjjDiIc3mJufWb6SVJFYxAdJWWUflwWztHkENoOxKkufCr26q/JYS0XSr0amk+HEPiVZNiIJ5+ypyJbKhS36tTmoe5+oc+CgRSusQDgfN4JHl4uxxTY3tbBpb1aEeEqUsEeOtXdZwZJ5+tqVXPdqX1dDi/ugJ2DriU0jQoSxxZ01ze0QEW8axAfJrPJA97WO8NeOvRnQODSp7LsXlM187Q+OVO1aKJ0LczMjs5nHVKbRQ6K1yteOZsepdAUtBHilyGqK3qUt01wtDiGPBeir3OskBdgVKpMip0a+ppCXLSmCzCz703jKJP1kxC0FG9W++GkVB+zJdYUEhMKwZl5hOrYoU13TpK3i2ZiGP33x0dnvlH/seSLgTrPLqgrL6LoY7c7Z+R4z0Rb4f6zWggQkegNp6ltOpUKRMMpWOLzVLDCxw9Y+zVo0HyFwUMWvyUriIdE7Uxnv5oH3hBrtd4PwxIdEBTyovz6Bn0OkV1Aoenc7LSE+595GVj8HgVPOJsqgaOk8DSA0jA7mgHk2Ive4LTXLwrKBWkfcdHTF1xIip06dPnzri+IShLmQyr8LW3Z8ioKAoEh9S5hSwBC1b/604mhGD8XW2jYzkZw1dM2v+qF2muqamun1AurpLR82/eHpllguZym14kRuda5/ZdzFYKk0XHaj1k2Bbxd3d/SfPWryrzx8+R7qj5k4ZNtQlE89EBfL3GgGoktbm8XLL5jEG/Wbr6CF/le7OuZP7iskk+YS5P989cKS29nhDTS3k39JYNv/s8OzhRr1D6Rgbm6gS/I813T57mxr8Dr/zaKzAvI9MAAAAAElFTkSuQmCC'); |
|||
background-position: center center; |
|||
background-repeat: no-repeat; |
|||
-webkit-box-shadow: 0 0 0; |
|||
box-shadow: 0 0 0; |
|||
} |
@ -1,363 +0,0 @@ |
|||
@font-face { |
|||
font-family: "AvaraBold"; |
|||
src: url("Avara-Bold.otf"); |
|||
font-weight: normal; |
|||
font-style: normal; |
|||
} |
|||
@font-face { |
|||
font-family: "AvaraBold"; |
|||
src: url("Avara-BoldItalic.otf"); |
|||
font-weight: normal; |
|||
font-style: italic; |
|||
} |
|||
@font-face { |
|||
font-family: "AvaraBold"; |
|||
src: url("Avara-Black.otf"); |
|||
font-weight: bold; |
|||
font-style: normal; |
|||
} |
|||
|
|||
.fr { |
|||
display: none; |
|||
} |
|||
|
|||
:root { |
|||
font-size: 18px; |
|||
line-height: 1.4em; |
|||
} |
|||
|
|||
html, |
|||
#curve { |
|||
scroll-behavior: smooth; |
|||
} |
|||
|
|||
body { |
|||
position: relative; |
|||
margin: 0; |
|||
padding: 0; |
|||
color: purple; |
|||
background-color: #ff4d4d33; |
|||
font-family: "AvaraBold"; |
|||
overflow: hidden; |
|||
} |
|||
hr { |
|||
border: 0; |
|||
border-bottom: 1px dotted; |
|||
margin-top: 1em; |
|||
margin-bottom: 1em; |
|||
} |
|||
|
|||
h1 { |
|||
line-height: 1.1em; |
|||
} |
|||
|
|||
h3 { |
|||
font-size: 1em; |
|||
margin-top: 0; |
|||
margin-bottom: 0; |
|||
} |
|||
|
|||
dl { |
|||
column-count: 2; |
|||
} |
|||
|
|||
dt { |
|||
text-decoration: underline; |
|||
} |
|||
dl { |
|||
text-indent: 0; |
|||
} |
|||
dd { |
|||
margin-left: 0; |
|||
display: inline-block; |
|||
} |
|||
|
|||
p { |
|||
margin: 0; |
|||
} |
|||
|
|||
p + p { |
|||
margin-top: 1em; |
|||
} |
|||
|
|||
ul { |
|||
padding-left: 0; |
|||
} |
|||
|
|||
select { |
|||
font-size: 1em; |
|||
} |
|||
|
|||
a { |
|||
text-decoration-style: wavy; |
|||
text-decoration-skip-ink: none; |
|||
text-decoration-color: white; |
|||
} |
|||
|
|||
sup { |
|||
line-height: 0; |
|||
} |
|||
|
|||
/* --- slider --- */ |
|||
|
|||
div#sliders { |
|||
position: fixed; |
|||
width: 500px; |
|||
top: 60px; |
|||
left: 61%; |
|||
bottom: 1em; |
|||
} |
|||
div#slider { |
|||
float: left; |
|||
margin: 0.5em 1em 1em 0.5em; |
|||
z-index: 1; |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 400px; |
|||
background: transparent; |
|||
} |
|||
#slider2 { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 400px; |
|||
background: transparent; |
|||
} |
|||
|
|||
#controlpoints li { |
|||
position: absolute; |
|||
z-index: 10000; |
|||
list-style-type: none; |
|||
width: 10em; |
|||
line-height: 1.3em; |
|||
} |
|||
#controlpoints li#cp-paris { |
|||
top: 220px; |
|||
left: 20px; |
|||
} |
|||
#controlpoints li#cp-brussels { |
|||
top: 0px; |
|||
left: 220px; |
|||
} |
|||
#controlpoints li#cp-rotterdam { |
|||
top: 140px; |
|||
right: 20px; |
|||
} |
|||
|
|||
#warped { |
|||
font-weight: bold; |
|||
position: absolute; |
|||
top: 220px; |
|||
left: -40px; |
|||
height: 220px; |
|||
} |
|||
|
|||
div#relearn-infos { |
|||
position: fixed; |
|||
bottom: 2em; |
|||
left: 65%; |
|||
margin-top: 2em; |
|||
} |
|||
div#relearn-infos ul { |
|||
margin: 0; |
|||
} |
|||
|
|||
/* --- control points ---*/ |
|||
#curve { |
|||
width: 55%; |
|||
padding: 1em 2em; |
|||
height: 87vh; |
|||
overflow: auto; |
|||
padding-bottom: 4em; |
|||
} |
|||
#curve::-webkit-scrollbar { |
|||
width: 6px; |
|||
border-radius: 5px; |
|||
} |
|||
#curve::-webkit-scrollbar-track { |
|||
background-color: black; |
|||
} |
|||
#curve::-webkit-scrollbar-thumb { |
|||
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3); |
|||
background-color: lightgray; |
|||
border-radius: 5px; |
|||
} |
|||
|
|||
.details { |
|||
display: none; |
|||
margin-top: 1em; |
|||
} |
|||
|
|||
div.controlpoint { |
|||
max-width: 800px; |
|||
margin: 1em 0; |
|||
margin-top: 2em; |
|||
padding-bottom: 2em; |
|||
|
|||
border-top: 1px solid black; |
|||
border-bottom: 1px solid black; |
|||
} |
|||
|
|||
div.controlpoint + div.controlpoint { |
|||
border-top: 0; |
|||
} |
|||
|
|||
div.controlpoint ul { |
|||
column-count: 2; |
|||
} |
|||
|
|||
dl:not(.summary) dt, |
|||
dl:not(.summary) dd { |
|||
display: inline; |
|||
} |
|||
|
|||
dl:not(.summary) dd:before { |
|||
content: " "; |
|||
} |
|||
|
|||
dl:not(.summary) dd + dt:before { |
|||
content: ""; |
|||
display: block; |
|||
} |
|||
|
|||
.practical-infos { |
|||
display: flex; |
|||
flex-wrap: wrap; |
|||
margin-top: 1em; |
|||
} |
|||
|
|||
.programme { |
|||
margin-bottom: 1em; |
|||
width: 100%; |
|||
} |
|||
|
|||
.programme div.flex { |
|||
float: left; |
|||
width: 50%; |
|||
} |
|||
|
|||
.programme p { |
|||
width: 50%; |
|||
float: left; |
|||
box-sizing: border-box; |
|||
} |
|||
.programme p { |
|||
padding-right: 0.5em; |
|||
} |
|||
.programme p + p { |
|||
padding-right: 0em; |
|||
padding-left: 0.5em; |
|||
} |
|||
.programme div.flex p { |
|||
width: 100%; |
|||
float: none; |
|||
} |
|||
|
|||
div.controlpoint .programme ul { |
|||
column-count: 1; |
|||
padding: 0 1em; |
|||
} |
|||
|
|||
.participation, |
|||
.hosting { |
|||
flex-basis: 50%; |
|||
box-sizing: border-box; |
|||
} |
|||
.participation { |
|||
padding-right: 0.5em; |
|||
} |
|||
|
|||
.hosting { |
|||
padding-left: 0.5em; |
|||
} |
|||
|
|||
/*--- ROTTERDAM ---*/ |
|||
#rotterdam { |
|||
color: #0054ff; |
|||
} |
|||
#rotterdam li { |
|||
list-style: none; |
|||
text-indent: -23px; |
|||
margin-left: 2em; |
|||
} |
|||
|
|||
/*--- BRUSSELS ---*/ |
|||
#brussels { |
|||
color: teal; |
|||
} |
|||
|
|||
/*--- PARIS ---*/ |
|||
#paris { |
|||
color: tomato; |
|||
} |
|||
|
|||
/*--- MOBILE ---*/ |
|||
@media only screen and (max-width: 1024px) { |
|||
:root { |
|||
font-size: 13px; |
|||
line-height: 1.4em; |
|||
} |
|||
|
|||
div#sliders { |
|||
top: 0; |
|||
left: 0; |
|||
right: 0; |
|||
width: initial; |
|||
height: 150px; |
|||
background-color: #ffdbdb; |
|||
} |
|||
div#slider { |
|||
top: -100px; |
|||
left: -40px; |
|||
transform: scale(0.5); |
|||
} |
|||
#warped { |
|||
top: -50px; |
|||
left: -225px; |
|||
transform: scale(0.5); |
|||
} |
|||
|
|||
div#relearn-infos { |
|||
position: static; |
|||
} |
|||
|
|||
#curve { |
|||
padding-top: 150px; |
|||
width: 100%; |
|||
box-sizing: border-box; |
|||
} |
|||
|
|||
.programme div.flex, |
|||
.programme p { |
|||
width: 100%; |
|||
} |
|||
|
|||
.programme ul { |
|||
margin-top: 0; |
|||
} |
|||
|
|||
.participation, |
|||
.hosting { |
|||
flex-basis: 100%; |
|||
padding: 0; |
|||
} |
|||
.hosting { |
|||
margin-top: 1em; |
|||
} |
|||
|
|||
#controlpoints li#cp-paris { |
|||
top: 120px; |
|||
left: 40px; |
|||
} |
|||
#controlpoints li#cp-brussels { |
|||
top: 10px; |
|||
left: 20px; |
|||
} |
|||
#controlpoints li#cp-rotterdam { |
|||
top: 10px; |
|||
right: -40px; |
|||
} |
|||
} |
@ -1,61 +0,0 @@ |
|||
#warped {position: relative; display: block; width:817.9999694824219px; |
|||
height:655.0034713745117px;} |
|||
|
|||
#warped>span[class^=w]:nth-of-type(n+0){display:block; position:absolute; |
|||
-moz-transform-origin:50% 100%; -webkit-transform-origin:50% 100%; -o-transform-origin:50% |
|||
100%; -ms-transform-origin:50% 100%; transform-origin:50% 100%; } |
|||
|
|||
#warped span{font-family:'AvaraBold';font-size:46px;font-weight:regular;font-style:normal; |
|||
line-height:0.95; white-space:pre; overflow:visible; padding:0px;} |
|||
|
|||
#warped .w0 {-moz-transform: rotate(-6.29rad);-webkit-transform: rotate(-6.29rad);-o-transform: |
|||
rotate(-6.29rad);-ms-transform: rotate(-6.29rad); transform: rotate(-6.29rad); |
|||
width: 31px; height: 43px; left: 129.24px; top: 58.02px;} |
|||
|
|||
#warped .w1 {-moz-transform: rotate(-6.23rad);-webkit-transform: rotate(-6.23rad);-o-transform: |
|||
rotate(-6.23rad);-ms-transform: rotate(-6.23rad); transform: rotate(-6.23rad); |
|||
width: 20px; height: 43px; left: 178.6px; top: 59.06px;} |
|||
|
|||
#warped .w2 {-moz-transform: rotate(-6.01rad);-webkit-transform: rotate(-6.01rad);-o-transform: |
|||
rotate(-6.01rad);-ms-transform: rotate(-6.01rad); transform: rotate(-6.01rad); |
|||
width: 13px; height: 43px; left: 217.28px; top: 64.23px;} |
|||
|
|||
#warped .w3 {-moz-transform: rotate(-5.53rad);-webkit-transform: rotate(-5.53rad);-o-transform: |
|||
rotate(-5.53rad);-ms-transform: rotate(-5.53rad); transform: rotate(-5.53rad); |
|||
width: 20px; height: 43px; left: 243.79px; top: 82.1px;} |
|||
|
|||
#warped .w4 {-moz-transform: rotate(-5.48rad);-webkit-transform: rotate(-5.48rad);-o-transform: |
|||
rotate(-5.48rad);-ms-transform: rotate(-5.48rad); transform: rotate(-5.48rad); |
|||
width: 20px; height: 43px; left: 270.77px; top: 110.44px;} |
|||
|
|||
#warped .w5 {-moz-transform: rotate(-5.56rad);-webkit-transform: rotate(-5.56rad);-o-transform: |
|||
rotate(-5.56rad);-ms-transform: rotate(-5.56rad); transform: rotate(-5.56rad); |
|||
width: 16px; height: 43px; left: 299.48px; top: 136.24px;} |
|||
|
|||
#warped .w6 {-moz-transform: rotate(-5.94rad);-webkit-transform: rotate(-5.94rad);-o-transform: |
|||
rotate(-5.94rad);-ms-transform: rotate(-5.94rad); transform: rotate(-5.94rad); |
|||
width: 23px; height: 43px; left: 328.82px; top: 158.28px;} |
|||
|
|||
#warped .w7 {-moz-transform: rotate(-6.18rad);-webkit-transform: rotate(-6.18rad);-o-transform: |
|||
rotate(-6.18rad);-ms-transform: rotate(-6.18rad); transform: rotate(-6.18rad); |
|||
width: 11px; height: 43px; left: 369.77px; top: 165.89px;} |
|||
|
|||
#warped .w8 {-moz-transform: rotate(-6.34rad);-webkit-transform: rotate(-6.34rad);-o-transform: |
|||
rotate(-6.34rad);-ms-transform: rotate(-6.34rad); transform: rotate(-6.34rad); |
|||
width: 11px; height: 43px; left: 399.6px; top: 166.65px;} |
|||
|
|||
#warped .w9 {-moz-transform: rotate(-6.54rad);-webkit-transform: rotate(-6.54rad);-o-transform: |
|||
rotate(-6.54rad);-ms-transform: rotate(-6.54rad); transform: rotate(-6.54rad); |
|||
width: 23px; height: 43px; left: 429.17px; top: 161.36px;} |
|||
|
|||
#warped .w10 {-moz-transform: rotate(-6.8rad);-webkit-transform: rotate(-6.8rad);-o-transform: |
|||
rotate(-6.8rad);-ms-transform: rotate(-6.8rad); transform: rotate(-6.8rad); |
|||
width: 23px; height: 43px; left: 468.58px; top: 145.76px;} |
|||
|
|||
#warped .w11 {-moz-transform: rotate(-7.1rad);-webkit-transform: rotate(-7.1rad);-o-transform: |
|||
rotate(-7.1rad);-ms-transform: rotate(-7.1rad); transform: rotate(-7.1rad); |
|||
width: 23px; height: 43px; left: 506.17px; top: 115.42px;} |
|||
|
|||
#warped .w12 {-moz-transform: rotate(-7.39rad);-webkit-transform: rotate(-7.39rad);-o-transform: |
|||
rotate(-7.39rad);-ms-transform: rotate(-7.39rad); transform: rotate(-7.39rad); |
|||
width: 23px; height: 43px; left: 525.54px; top: 85.72px;} |
@ -1,118 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<!-- source: https://bl.ocks.org/mbostock/8027637 --> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<style> |
|||
|
|||
path { |
|||
fill: none; |
|||
stroke: #000; |
|||
stroke-width: 8px; |
|||
} |
|||
|
|||
line { |
|||
fill: none; |
|||
stroke: red; |
|||
stroke-width: 0; |
|||
} |
|||
|
|||
circle { |
|||
fill: red; |
|||
} |
|||
|
|||
rect { |
|||
fill: none; |
|||
cursor: crosshair; |
|||
pointer-events: all; |
|||
} |
|||
|
|||
</style> |
|||
<body> |
|||
<script src="https://d3js.org/d3.v3.min.js"></script> |
|||
<script> |
|||
|
|||
var points = [[600,600],[600, 400],[300,300], [400, 600]]; |
|||
|
|||
var width = 960, |
|||
height = 500; |
|||
|
|||
var line = d3.svg.line() |
|||
.interpolate("cardinal"); |
|||
|
|||
var svg = d3.select("body").append("svg") |
|||
.attr("width", width) |
|||
.attr("height", height); |
|||
|
|||
var path = svg.append("path") |
|||
.datum(points) |
|||
.attr("d", line); |
|||
|
|||
var line = svg.append("line"); |
|||
|
|||
var circle = svg.append("circle") |
|||
.attr("cx", -10) |
|||
.attr("cy", -10) |
|||
.attr("r", 60); |
|||
|
|||
var isDown = false; |
|||
svg.append("rect") |
|||
.attr("width", width) |
|||
.attr("height", height) |
|||
.on("mousedown", function(){ |
|||
svg.on("mousemove", mousemoved); |
|||
}) |
|||
.on("mouseup") |
|||
|
|||
function mousemoved() { |
|||
var m = d3.mouse(this), |
|||
p = closestPoint(path.node(), m); |
|||
line.attr("x1", p[0]).attr("y1", p[1]).attr("x2", m[0]).attr("y2", m[1]); |
|||
circle.attr("cx", p[0]).attr("cy", p[1]); |
|||
} |
|||
|
|||
function closestPoint(pathNode, point) { |
|||
var pathLength = pathNode.getTotalLength(), |
|||
precision = 8, |
|||
best, |
|||
bestLength, |
|||
bestDistance = Infinity; |
|||
|
|||
// linear scan for coarse approximation |
|||
for (var scan, scanLength = 0, scanDistance; scanLength <= pathLength; scanLength += precision) { |
|||
if ((scanDistance = distance2(scan = pathNode.getPointAtLength(scanLength))) < bestDistance) { |
|||
best = scan, bestLength = scanLength, bestDistance = scanDistance; |
|||
} |
|||
} |
|||
|
|||
// binary search for precise estimate |
|||
precision /= 2; |
|||
while (precision > 0.5) { |
|||
var before, |
|||
after, |
|||
beforeLength, |
|||
afterLength, |
|||
beforeDistance, |
|||
afterDistance; |
|||
if ((beforeLength = bestLength - precision) >= 0 && (beforeDistance = distance2(before = pathNode.getPointAtLength(beforeLength))) < bestDistance) { |
|||
best = before, bestLength = beforeLength, bestDistance = beforeDistance; |
|||
} else if ((afterLength = bestLength + precision) <= pathLength && (afterDistance = distance2(after = pathNode.getPointAtLength(afterLength))) < bestDistance) { |
|||
best = after, bestLength = afterLength, bestDistance = afterDistance; |
|||
} else { |
|||
precision /= 2; |
|||
} |
|||
} |
|||
|
|||
best = [best.x, best.y]; |
|||
best.distance = Math.sqrt(bestDistance); |
|||
return best; |
|||
|
|||
function distance2(p) { |
|||
var dx = p.x - point[0], |
|||
dy = p.y - point[1]; |
|||
return dx * dx + dy * dy; |
|||
} |
|||
} |
|||
|
|||
</script> |
|||
<html> |
@ -1,440 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<meta charset="utf-8"> |
|||
<meta name="viewport" content="width=device-width, user-scalable=no"> |
|||
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script> |
|||
<script type="text/javascript" src="js/jquery.pathslider.js"></script> |
|||
<link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/avara" type="text/css"/> |
|||
<link rel="stylesheet" type="text/css" href="css/pathslider.css"> |
|||
<link rel="stylesheet" type="text/css" href="css/warped.css"> |
|||
<link rel="stylesheet" type="text/css" href="css/stylesheet.css"> |
|||
</head> |
|||
<body> |
|||
<!-- The curved slider --> |
|||
<div id="sliders"> |
|||
<ul id='controlpoints'> |
|||
<li id="cp-rotterdam"><a href="#rotterdam">Rotterdam, 07→09/06</a></li> |
|||
<li id="cp-brussels"><a href="#brussels">Brussels, 21→22/06</a></li> |
|||
<li id="cp-paris"><a href='#paris'>Paris, 06→08/09</a></li> |
|||
</ul> |
|||
<div id='warped'> |
|||
<span class='w0'>R</span><span class='w1'>e</span><span class='w2'>l</span><span class='w3'>e</span><span class='w4'>a</span><span class='w5'>r</span><span class='w6'>n</span><span class='w7'> </span><span class='w8'> </span><span class='w9'>2</span><span class='w10'>0</span><span class='w11'>1</span><span class='w12'>9</span> |
|||
</div> |
|||
<div id="slider"></div> |
|||
<!--<div id="slider2"></div>--> |
|||
</div> |
|||
|
|||
<div id="curve"> |
|||
<h1>Relearn |
|||
<select onchange="window.location.href=this.value" style="display: inline-block;"> |
|||
<option value="http://relearn.be/2019/" selected="selected">2019</option> |
|||
<option value="http://relearn.be/2017/">2017</option> |
|||
<option value="http://relearn.be/2016/">2016</option> |
|||
<option value="http://relearn.be/2015/">2015</option> |
|||
<option value="http://relearn.be/2014/">2014</option> |
|||
<option value="http://relearn.be/2013/">2013</option> |
|||
</select> |
|||
curved</h1> |
|||
<p> |
|||
Relearn is a collective learning experiment with as many teachers as it has participants. It is motivated by the possibility to displace parameters of/for research, studying and learning. <a href='#' class='more'>Read more about Relearn.</a> |
|||
</p> |
|||
<div class='details'> |
|||
<p> |
|||
Relearn is a summerschool which welcomes persons, artists, students, teachers from all backgrounds and disciplines. Participants will gather to learn from and teach to each other, beyond the traditional paradigms of education. |
|||
Relearn researches convivial, experimental and deviant methods and means in the fields of design, computing and education, challenging the normal roles and separations in them (teacher/student, developer/user, art/life…). |
|||
</p> |
|||
<p> |
|||
Free, Libre and Open Source Software plays a fundamental role at Relearn, as it facilitates a different approach to the tools we commonly use in our practices and lives. For instance, it can allow us to understand the influence that tools themselves exert on the way they are used, or the different social relations and economies that are formed between who creates and uses them. Such a questioning approach to technology feels urgent, in a time in which more and more social, political and personal issues are addressed by solely technological means. |
|||
</p> |
|||
</div> |
|||
|
|||
<hr> |
|||
|
|||
<p> |
|||
This summer, Relearn is back in the form of a curve, transversing multiple times and spaces. Curl yourselves this summer from, to and between Rotterdam, Brussels and Paris ! <a href='#' class='more'>Read more about the curve.</a> |
|||
</p> |
|||
<div class='details'> |
|||
<p>Relearn 2019 is a curve, transversing multiple times and spaces.</p> |
|||
<p> |
|||
These would be independently organized sessions based on the urgencies |
|||
and affordances of each of the participating spaces. However, there |
|||
would still be a common thread throughout the series, perhaps in the |
|||
form of a transversal “reroam” but also in the form of a roaming server |
|||
that is passed on to each subsequent event. |
|||
|
|||
It is possible to attend all sessions but not required, nor the goal, it |
|||
is really the intention to have self-standing events which do not depend |
|||
people joining a succession of events but still share commonalities. |
|||
</p> |
|||
</div> |
|||
|
|||
|
|||
|
|||
<div id="rotterdam" class="controlpoint"> |
|||
<h2>·Rotterdam</h2> |
|||
|
|||
|
|||
<dl class='summary'> |
|||
<dt>Date</dt> <dd>7<sup>th</sup>–9<sup>th</sup> June 2019</dd> |
|||
<dt>Location</dt> <dd>Varia - Gouwstraat 3, Rotterdam, The Netherlands</dd> |
|||
<dt>Initiator</dt> <dd><a href="https://varia.zone/en/" target='_blank'>Varia</a></dd> |
|||
<dt>Contact</dt> <dd><a href="mailto:info@varia.zone">info@varia.zone</a></dd> |
|||
</dl> |
|||
|
|||
<hr /> |
|||
|
|||
<p>For the Rotterdam control point on the Relearn curve, we propose to together attend to a <strong>subject zone</strong> (<strong>*</strong>) where different digital network practices intersect. This subject zone can morph into multiple directions throughout the session. Our specific interest is in how <strong>publishing formats</strong> (<strong>**</strong>) operate with/on/through this zone.</p> |
|||
|
|||
<p><strong>*</strong> There are many questions in the air when we start to speak about digital infrastructures, hosters, servers, services, networks and their technical realities. Instead of picking one and diving deeper, we thought it would be more interesting to present a range and explore different vocabularies, protocols, technologies, infrastructures. We invite you to join Relearn to stretch this zone, starting from or moving towards:</p> |
|||
|
|||
<ul> |
|||
<li>▝ digital interdependencies</li> |
|||
<li>▘ affective infrastructures</li> |
|||
<li>▝ homebrew networks</li> |
|||
<li>▗ networked entanglements</li> |
|||
<li>▖ feminist servers</li> |
|||
<li>▖ federated networks</li> |
|||
<li>▝ and-and-networks</li> |
|||
<li>▚ digital autonomy</li> |
|||
<li>▖ transitional infrastructures</li> |
|||
<li>▞ digital selves-organisations</li> |
|||
<li>▖ so-and-sovereignty networks</li> |
|||
<li>▝ out-of-the-cloud thinking</li> |
|||
<li>▚ …</li> |
|||
</ul> |
|||
<p><strong>**</strong> We’re curious about learning through publishing formats. The different publishing formats serve as an invitation to embed ourselves within the subject zone of digital networks. How can these formats be our morphable lenses, that we use to relearn digital networks? Starting from or moving towards:</p> |
|||
<ul> |
|||
<li>▝ multiple readers</li> |
|||
<li>▖ cross-readings created through algorithms</li> |
|||
<li>▞ logbooks</li> |
|||
<li>▝ syllabi</li> |
|||
<li>▚ documentation</li> |
|||
<li>▖ annotations</li> |
|||
<li>▝ cookbooks</li> |
|||
<li>▖ tutorials</li> |
|||
<li>▚ README</li> |
|||
<li>▖ bug reports</li> |
|||
<li>▗ link dumps</li> |
|||
<li>▝ scores</li> |
|||
<li>▖ …</li> |
|||
</ul> |
|||
|
|||
<p>Many sub-trajectories can emerge from here during the days, without the need of taking the same path or agreeing about vocabularies or geometries altogether.</p> |
|||
|
|||
<hr /> |
|||
|
|||
<div class='practical-infos'> |
|||
|
|||
<div class='programme'> |
|||
<h3>Programme</h3> |
|||
|
|||
<p><u>Friday 7<sup>th</sup> June</u><br> |
|||
20:00–22:00<br> |
|||
Relearn public evening program: embed yourself into Relearn</p> |
|||
<p><u>Saturday–Sunday, 8–9<sup>th</sup> June</u><br> |
|||
10:00–18:00<br> |
|||
Relearn sub-zone-trajectories</p> |
|||
</div> |
|||
|
|||
<div class='participation'> |
|||
<h3>Participation</h3> |
|||
|
|||
<p>If you would like to join this Relearn session, please send an email to <a href="mailto:info@varia.zone">info@varia.zone</a> with a short motivation of your interest. We will reply to subscriptions on a regular basis, up to the <strong>26<sup>th</sup> of May</strong>.</p> |
|||
<p>Our <em>capacities</em> allow us to have a group of 30 relearners. Our preference goes out to people that can join the whole session (Friday evening, Saturday and Sunday). |
|||
</p> |
|||
<p>If you would like to join us only on the Friday evening, there is no need to subscribe, just come over ! :)</p> |
|||
</div> |
|||
|
|||
<div class='hosting'> |
|||
<h3>Hosting</h3> |
|||
<p> |
|||
We will take care of a <em>daily vegetarian lunch</em> (please let us know about allergies or other dietary preferences). Following a tradition from previous years, we will arrange a <em>hosting network</em> in the city and find a place to stay for everyone. Please mention in the email if you need to be hosted or could host one or more relearners in your house.</p> |
|||
</div> |
|||
|
|||
</div> |
|||
|
|||
<br> |
|||
|
|||
<div>Relearn Rotterdam is kindly supported by Gemeente Rotterdam & Stimuleringsfonds Creative Industrie.</div> |
|||
|
|||
</div> <!-- END OF ROTTERDAM CONTROL POINT --> |
|||
|
|||
|
|||
<div id="brussels" class="controlpoint"> |
|||
<h2>·Brussels</h2> |
|||
|
|||
|
|||
<dl class='summary'> |
|||
<dt>Date</dt> <dd>21<sup>st</sup>–22<sup>nd</sup> June 2019</dd> |
|||
<dt>Location</dt> <dd>Hacktiris - Rue Paul Devauxstraat 3, Brussels, Belgium</dd> |
|||
<dt>Initiator</dt> <dd><a href="http://osp.kitchen/" target='_blank'>OSP</a></dd> |
|||
<dt>Contact</dt> <dd><a href="mailto:registration@relearn.be&subject=[BXL] ">registration@relearn.be</a></dd> |
|||
</dl> |
|||
|
|||
<hr /> |
|||
|
|||
<p> |
|||
Exploring computed layout tools. |
|||
</p> |
|||
<p> |
|||
Since 2013, several initiatives have been experimenting with making printed publications using HTML/CSS/Javascript with the help of CSS regions. This feature is necessary to produce multi-paged publications and since its removal from Blink (2014) and in WebKit (2017), users are trapped with old versions of WebKit. Sticking to older version is still viable today but for how long? |
|||
</p> |
|||
<p> |
|||
This urgency leads us to a quite pragmatic but necessary worksession which will therefore focus on exploring other tools for making printed publications, especially computed layout tools (making layout with code). We already spotted three tools we would like to explore, but anyone is welcome to propose and experiment with other tools: |
|||
</p> |
|||
<dl> |
|||
<dt><a href='https://xxyxyz.org/' target='_blank'>Flat</a></dt><dd>A Python library made to draw graphics but also designed to produce multi-paged PDFs.</dd> |
|||
<dt><a href='http://sile-typesetter.org/' target='_blank'>Sile</a></dt><dd>A contemporary rewriting of the TeX mastodon.</dd> |
|||
<dt><a href='https://www.pagedmedia.org/paged-js/' target='_blank'>paged.js</a></dt><dd>A Javascript polyfill of CSS official specs for printed documents.</dd> |
|||
</dl> |
|||
|
|||
<hr /> |
|||
|
|||
<div class='practical-infos'> |
|||
|
|||
<div class='programme'> |
|||
<h3>Programme</h3> |
|||
|
|||
<div class='flex'> |
|||
<p><u>Friday 21<sup>st</sup> June</u><br> |
|||
10:00–18:00 |
|||
</p> |
|||
<ul> |
|||
<li>Short introduction of tools</li> |
|||
<li>Choose your tool and have fun with it!</li> |
|||
</ul> |
|||
</div> |
|||
|
|||
<div class='flex'> |
|||
<p><u>Saturday 22<sup>nd</sup> June</u><br> |
|||
10:00–18:00</p> |
|||
<ul> |
|||
<li>Continuation of the exploration</li> |
|||
<li>Show/tell/criticize</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class='participation'> |
|||
<h3>Participation</h3> |
|||
|
|||
<p>Participation is free of charge. If you would like to join this Relearn session, please send an email to <a href="mailto:miam@osp.kitchen">miam@osp.kitchen</a> with a short motivation of your interest. We will reply to subscriptions on a regular basis, up to the <strong>15<sup>th</sup> of June</strong>.</p> |
|||
<p>Our <em>capacities</em> allow us to have a group of 12 relearners. Our preference goes out to people that can join the whole session (Friday, Saturday). |
|||
</p> |
|||
</div> |
|||
|
|||
<div class='hosting'> |
|||
<h3>Hosting</h3> |
|||
<p> |
|||
On Friday, there's a vegetarian canteen in the working space or many eating choices outside (the location is in the heart of Brussels). On Saturday we will take care of a <em>vegetarian lunch</em> (please let us know about allergies or other dietary preferences). Following a tradition from previous years, we will arrange a <em>hosting network</em> in the city and find a place to stay for everyone. Please mention in the email if you need to be hosted or could host one or more relearners in your house. |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> <!-- END BRUSSELS CONTROL POINT --> |
|||
|
|||
<div id="paris" class="controlpoint"> |
|||
<h2>·Paris</h2> |
|||
|
|||
<div class='fr'> |
|||
<a class='lang' href='#'>EN</a> |
|||
<dl class='summary'> |
|||
<dt>Date</dt> <dd>06–08 septembre 2019</dd> |
|||
<dt>Lieu</dt> <dd>La Générale - 14 Avenue Parmentier, 75011 Paris, France</dd> |
|||
<dt>Organisateurs</dt> <dd><a href="http://www.sakasama.net/" target='_blank'>Anne Laforet</a> et <a href="https://juhel-quentin.fr/" target='_blank'>Quentin Juhel</a></dd> |
|||
<dt>Contact</dt> <dd><a href="mailto:registration@relearn.be&subject=[PARIS] ">registration@relearn.be</a></dd> |
|||
</dl> |
|||
<p>Relearn est une expérience d’apprentissage et de recherche collectifs avec autant d'enseignant·es que de participant·es. Relearn est un réseau d'artistes, de designers, d'enseignant⋅es, de programmeur⋅euses, de praticien·nes et/ou de curieux ⋅ses qui se rassemblent pour re-imaginer des formes de pédagogie, de création, de partage autour d'outils numériques libres. L'horizontalité, la transdisciplinarité et la diversité des approches et des pratiques sont au cœur des sessions de Relearn.</p> |
|||
<p>Cet été, Relearn est de retour sous la forme d’une courbe, traversant des temps et espaces multiples. Cet été, après les sessions de Rotterdam et Bruxelles, la courbe s'arrête à Paris du 6 au 8 septembre.</p> |
|||
<p>Nous vous proposons de venir expérimenter ensemble avec le serveur local de Relearn qui voyage entre chacune des sessions. Nous nous intéresserons à plusieurs pistes de réflexions concernant les serveurs et les enjeux sociaux, techniques, artistiques, affectifs... Nous souhaitons ré-interroger ce que l'on entend par serveur, sa place dans l'apprentissage et la recherche, ainsi que les modes de co-existence et d'échange. Nous vous invitons à venir prendre soin de ce dispositif à partir des enjeux de :</p> |
|||
|
|||
<ul> |
|||
<li>pratiques artistiques collaboratives en ligne : pratiques artistiques collaboratives en ligne : dessin, texte, image, interaction, etc</li> |
|||
<li>modes de publication et de transmission, en particulier le Web 2 print</li> |
|||
<li>maintenance, administration système, care et travail reproductif</li> |
|||
<li>codes de conduite, modération</li> |
|||
<li>physicalité des serveurs</li> |
|||
<li>représentations</li> |
|||
<li>écologie et serveurs</li> |
|||
<li>serveurs locaux, fédérés, féministes, etc.</li> |
|||
</ul> |
|||
|
|||
<hr> |
|||
<div class='practical-infos'> |
|||
<div class='programme'> |
|||
<h3>Programme</h3> |
|||
|
|||
<p style="width: 100%; margin-bottom: 1.5em;">Relearn a lieu à <a href="https://www.lagenerale.fr/">La Générale</a> - 14 Avenue Parmentier, 75011 Paris, France</p> |
|||
|
|||
<div class='flex'> |
|||
<p><u>Vendredi 6 septembre — 18h → 22h</u><br> |
|||
Table-rondes de présentation des pistes de réflexions et échanges<br> |
|||
Ouvert à tou·tes, participant·es ou non à Relearn<br> |
|||
Bar sur place</p> |
|||
</div> |
|||
|
|||
<div class='flex'> |
|||
<p><u>Samedi 7 septembre — 10h → 18h (possibilité de rester plus tard)</u><br> |
|||
<u>Dimanche 8 septembre — 10h → 18h</u><br> |
|||
séances de travail collectives, par petits groupes, en parallèle<br> |
|||
18h ménage collectif<br> |
|||
Gratuit sur inscription à <a href="mailto:registration@relearn.be&subject=[PARIS] ">registration@relearn.be</a> avant le 25 août</p> |
|||
</div> |
|||
</div> |
|||
<div class='participation'> |
|||
<h3>Participation</h3> |
|||
<p>Si vous souhaitez participer à cette session de Relearn, merci d'envoyer un email à <a href="mailto:registration@relearn.be&subject=[PARIS] ">registration@relearn.be</a> avec quelques mots sur le(s) axe(s) qui vous intéressent. La date limite d'inscription est le 25 août.<br>Nous pouvons accueillir une cinquantaine de participant·es pendant la totalité de Relearn (vendredi soir, samedi et dimanche). Le vendredi soir est ouvert à toute personne intéressée par les thématiques de Relearn et si vous ne souhaitez venir que ce soir-là, ce n'est pas nécessaire de s'inscrire.</p> |
|||
</div> |
|||
|
|||
<div class='hosting'> |
|||
<h3>Accueil, hébergement</h3> |
|||
<p>Nous prenons en charge un déjeuner végétarien samedi et dimanche (merci de nous dire si vous avez des allergies ou intolérances). </p> |
|||
<p>En continuité des éditions précédentes de Relearn, nous mettons en place un réseau d'hébergement pour loger les participant·es non loca·les. Merci de mentionner dans votre email si vous avez besoin d'être logé·e ou si vous pouvez loger un·e ou plusieurs participant·es.</p> |
|||
</div> |
|||
|
|||
<p>Merci d'apporter une prise multiple.</p> |
|||
|
|||
|
|||
<p>La session parisienne de Relearn est intiée par <a href="http://www.sakasama.net/">Anne Laforet et <a href="http://juhel-quentin.fr/">Quentin Juhel</a>, en discussion avec d'autres participant·es, en particulier issu·es de Relearn, <a href="https://prepostprint.org">Prepostprint</a> et <a href="https://lereset.org/">le Reset</a>.</p> |
|||
</div> |
|||
</div> <!-- END DIV .fr --> |
|||
|
|||
<div class='en'> |
|||
<a class='lang' href='#'>FR</a> |
|||
<dl class='summary'> |
|||
<dt>Date</dt> <dd>06–08 September 2019</dd> |
|||
<dt>Location</dt> <dd>La Générale - 14 Avenue Parmentier, 75011 Paris, France</dd> |
|||
<dt>Initiators</dt> <dd><a href="http://www.sakasama.net/" target='_blank'>Anne Laforet</a> and <a href="https://juhel-quentin.fr/" target='_blank'>Quentin Juhel</a></dd> |
|||
<dt>Contact</dt> <dd><a href="mailto:registration@relearn.be&subject=[PARIS] ">registration@relearn.be</a></dd> |
|||
</dl> |
|||
|
|||
<p>Relearn is a collective learning experiment with as many teachers as there are participants. Relearn is a network of artists, designers, teachers, programmers, practitioners and/or curious minds coming together to re-imagine pedagogical forms, creation, sharing around the concept of free software tools. During Relearn, we experience together horizontality, transdisciplinarity, diversity of approaches and practices.</p> |
|||
<p>This summer, Relearn is back in the form of a curve, passing through multiple times and spaces. This summer, after Rotterdam, Brussels, the curve will reach Paris from September 6-8.</p> |
|||
<p>You are invited to come and experiment with the local Relearn server that travels between each session of the curve. Our interests are focused on several threads around servers and the social, technical, artistic, affective issues around them. We propose to re-examine what we understand as servers, their place in learning and research, as well as modes and ways of co-existence and exchange with and via them. You will have the possibility to come and take care for this device meanwhile addressing the following issues :</p> |
|||
|
|||
<ul> |
|||
<li>online collaborative art practices : drawing, text, image, interaction, etc</li> |
|||
<li>modes of publication and transmission, more specifically Web 2 print</li> |
|||
<li>maintenance, system administration, care and reproductive work</li> |
|||
<li>codes of conduct, moderation</li> |
|||
<li>physicality of servers</li> |
|||
<li>representations</li> |
|||
<li>ecology and servers</li> |
|||
<li>local, federated, feminist servers...</li> |
|||
</ul> |
|||
|
|||
<p>During Relearn sessions, we challenge our ways of learning, exchanging and experimenting through feminist, open, inclusive pedagogies together.</p> |
|||
|
|||
<p>English, French, and languages in between, are spoken at Relearn. Participants will work in small groups, in parallel sessions.</p> |
|||
|
|||
<p>You are welcome to bring your own resources for discussions.</p> |
|||
|
|||
<hr> |
|||
<div class='practical-infos'> |
|||
|
|||
<div class='programme'> |
|||
<h3>Programme</h3> |
|||
<p style="width: 100%; margin-bottom: 1.5em;">Relearn will take place at <a href="https://www.lagenerale.fr/" target="_blank">La Générale</a> - 14 Avenue Parmentier, 75011 Paris, France</p> |
|||
|
|||
<div class='flex'> |
|||
<p><u>Friday September 6th — 18h → 22h</u><br> |
|||
Round-tables to present threads for discussion and exchange<br> |
|||
Open to everybody, Relearners and Non-relearners</p> |
|||
</div> |
|||
|
|||
<div class='flex'> |
|||
<p><u>Saturday September 7th — 10h → 18h (or more)</u><br> |
|||
<u>Sunday Septembre 8th — 10h → 18h</u><br> |
|||
parallel work sessions in small groups<br> |
|||
18h collective cleaning<br> |
|||
Free of charge upon writing to <a href="mailto:registration@relearn.be&subject=[PARIS] ">registration@relearn.be</a> before August 25<sup>th</sup>.</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class='participation'> |
|||
<h3>Participation</h3> |
|||
<p>To take part of this Relearn session, please send an email to <a href="mailto:registration@relearn.be&subject=[PARIS] ">registration@relearn.be</a> with a few words describing your interests for the session. The application deadline to apply is August 25th.<br>Our capacities allow us to welcome a group of 50 relearners for the entire session (Friday evening, Saturday and Sunday).<br>For only Friday evening participation, subscribing is unnecessary, just come and join us as is! :)</p> |
|||
</div> |
|||
|
|||
<div class='hosting'> |
|||
<h3>Hosting</h3> |
|||
<p>A daily vegetarian lunch is provided (please let us know about allergies or other dietary requirements). Following a tradition from previous years, we will arrange a hosting network in the city and find a place to stay for everyone. Please mention in the email if you need to be hosted or could host one or more relearners at your home.</p> |
|||
|
|||
<p>Please bring a power strip.</p> |
|||
</div> |
|||
|
|||
|
|||
<p style='margin-top:1.5em;''>Relearn Paris session is initiatied by <a href="http://www.sakasama.net/">Anne Laforet</a> et <a href="http://juhel-quentin.fr/">Quentin Juhel</a>, in collaboration with other participants, specifically from Relearn, <a href="https://prepostprint.org">Prepostprint</a> and <a href="https://lereset.org/">le Reset</a>.</p> |
|||
</div> |
|||
</div> <!-- END DIV .en --> |
|||
</div> |
|||
|
|||
<div id="relearn-infos"> |
|||
<h3>Resources & contact</h3> |
|||
<ul> |
|||
<li><a href="https://tumulte.domainepublic.net/cgi-bin/mailman/listinfo/relearn" target='_blank'>Subscribe to the Relearn mailinglist </a></li> |
|||
<li><a href="https://webchat.freenode.net/" target='_blank'>IRC channel: #relearn on Freenode</a></li> |
|||
<li><a href="https://gitlab.com/relearn" target='_blank'>Relearn gitlab repository </a></li> |
|||
<li><a href="https://gallery.constantvzw.org/index.php/search?album=1&q=relearn" target='_blank'>Photographs of previous Relearn editions</a></li> |
|||
</ul> |
|||
</div> |
|||
|
|||
</div> <!-- END CURVE --> |
|||
|
|||
<script> |
|||
jQuery(function($){ |
|||
$("#slider").pathslider({ |
|||
//points : [250,50,-150,100,-50,-400,250,250], |
|||
points : [350,100,-750,350,400,-500,150,200], |
|||
value : 0, |
|||
rotateGrip : true, |
|||
tolerance : 3, |
|||
range : 30, |
|||
curve : { width:4, color:"#333", cap:"round" } |
|||
}); |
|||
$("#slider2").pathslider({ |
|||
points : [490,300,-150,0,-200,-200,300,100], |
|||
value : 49, |
|||
rotateGrip : true, |
|||
tolerance : 3, |
|||
range : 30, |
|||
curve : { width:4, color:"#333", cap:"round" } |
|||
}); |
|||
}); |
|||
|
|||
// scroll |
|||
$(document).ready(function() { |
|||
$('#slider').bind('slide.pathslider', function(event, slider){ |
|||
var scrollPos = slider.percent * ( $('#curve')[0].scrollHeight - $(window).height() ) / 100 |
|||
//$('#curve').scrollTop(scrollPos); |
|||
$('#curve').stop().animate({scrollTop: scrollPos}, 200); |
|||
}); |
|||
$('#curve').scroll(function() { |
|||
curve = document.querySelectorAll('#curve')[0] |
|||
offset = curve.scrollTop / (curve.scrollHeight - curve.clientHeight) * 100; |
|||
$('#slider').getpathslider().setSlider(offset); |
|||
}); |
|||
|
|||
$('#slider2').bind('slide.pathslider', function(event, slider){ |
|||
var scrollPos = slider.percent * ( $('#curve')[0].scrollHeight - $(window).height() ) / 100 |
|||
$('#curve').stop().animate({scrollTop: scrollPos}, 200); |
|||
}); |
|||
|
|||
$('a.more').click(function(){ |
|||
$(this).parent().next().toggle(); |
|||
}); |
|||
|
|||
$('#paris .fr a.lang').click(function(){ |
|||
$('#paris .en').toggle(); |
|||
$('#paris .fr').toggle(); |
|||
}); |
|||
$('#paris .en a.lang').click(function(){ |
|||
$('#paris .en').toggle(); |
|||
$('#paris .fr').toggle(); |
|||
}); |
|||
|
|||
}); |
|||
|
|||
</script> |
|||
</body> |
|||
</html> |
@ -1,402 +0,0 @@ |
|||
/* jQuery Pathslider v1.0.0 alpha |
|||
* By Rob Garrison (Mottie) |
|||
* MIT License |
|||
*/ |
|||
(function($){ |
|||
$.pathslider = function(el, options){ |
|||
|
|||
// To avoid scope issues, use 'base' instead of 'this'
|
|||
// to reference this class from internal events and functions.
|
|||
var base = this, o; |
|||
|
|||
// Access to jQuery and DOM versions of element
|
|||
base.$el = $(el).addClass('pathslider'); |
|||
base.el = el; |
|||
|
|||
// Add a reverse reference to the DOM object
|
|||
base.$el.data("pathslider", base); |
|||
|
|||
base.init = function(){ |
|||
var t; |
|||
base.options = o = $.extend(true, {}, $.pathslider.defaults, options); |
|||
|
|||
// Is there a canvas?
|
|||
t = document.createElement('canvas'); |
|||
base.hasCanvas = !!(t.getContext && t.getContext('2d')); |
|||
base.hasTouch = document.hasOwnProperty("ontouchend"); |
|||
|
|||
// add grip
|
|||
base.$grip = $('<div></div>').appendTo(base.$el); |
|||
|
|||
// store array of x & y positions for cross reference
|
|||
base.points = []; |
|||
base.pointsxy = []; |
|||
base.arrayX = []; |
|||
base.arrayY = []; |
|||
base.arrayP = []; |
|||
|
|||
base.rad2deg = 180 / Math.PI; // convert radians to degrees (multiply radian by this value)
|
|||
base.sliding = false; // flag for dragging element
|
|||
base.lastPercent = base.percent = o.value; |
|||
|
|||
// Callbacks
|
|||
// slide triggered on EVERY mouse move; change triggered on slide stop
|
|||
$.each('create update start slide change stop'.split(' '), function(i,f){ |
|||
if ($.isFunction(o[f])){ |
|||
base.$el.bind(f + '.pathslider', o[f]); |
|||
} |
|||
}); |
|||
|
|||
$(document) |
|||
.bind( base.hasTouch ? 'touchend.pathslider touchcancel.pathslider' : 'mouseup.pathslider mouseleave.pathslider', function(e){ |
|||
if (base.sliding) { // && ($(e.target).closest('.pathslider').length || e.type === 'mouseleave')) {
|
|||
base.$el.trigger('stop.pathslider', [base]); |
|||
if (base.lastPercent !== base.percent) { |
|||
base.lastPercent = base.percent; |
|||
base.$el.trigger('change.pathslider', [base]); |
|||
} |
|||
} |
|||
base.$grip.removeClass('sliding'); |
|||
base.sliding = false; |
|||
}) |
|||
.bind( (base.hasTouch ? 'touchmove' : 'mousemove') + '.pathslider', function(e){ |
|||
if (base.sliding) { |
|||
base.setSlider( base.findPos(e), null, true ); |
|||
} |
|||
}); |
|||
|
|||
$(window) |
|||
.bind('resize.pathslider', function(){ |
|||
base.update(); |
|||
}) |
|||
.bind('load', function(){ |
|||
// needed because loading images/fonts will shift the page
|
|||
base.sliderDim[0] = base.$el.offset().left; |
|||
base.sliderDim[1] = base.$el.offset().top; |
|||
}); |
|||
|
|||
base.$grip |
|||
.bind( (base.hasTouch ? 'touchstart' : 'mousedown') + '.pathslider', function(e){ |
|||
base.sliding = true; |
|||
$(this).addClass('sliding'); |
|||
base.$el.trigger('start.pathslider', [base]); |
|||
return false; |
|||
}) |
|||
.bind('click', function(){ |
|||
return false; |
|||
}); |
|||
|
|||
base.redraw(); |
|||
|
|||
base.$el.trigger('create.pathslider', [base]); |
|||
|
|||
}; |
|||
|
|||
// update dimensions & grip position
|
|||
base.update = function(){ |
|||
|
|||
// using attr to remove other css grip classes when updating
|
|||
base.$grip.attr('class', 'pathslider-grip ' + o.gripClass); |
|||
|
|||
if (base.ctx) { |
|||
// clear canvas *before* setting new dimensions
|
|||
// just in case the new size is smaller than the previous
|
|||
base.ctx.clearRect(0, 0, base.sliderDim[2], base.sliderDim[3]); |
|||
} |
|||
|
|||
base.sliderDim = [ |
|||
base.$el.offset().left, |
|||
base.$el.offset().top, |
|||
base.$el.width(), |
|||
base.$el.height() |
|||
]; |
|||
|
|||
// get grip dimensions; jQuery v3+ width() & height() return the rotated dimensions
|
|||
// which we don't want!
|
|||
var computedStyle = window.getComputedStyle(base.$grip[0]); |
|||
// for centering grip
|
|||
base.gripCenter = [ parseInt(computedStyle.width, 10)/2, parseInt(computedStyle.height, 10)/2 ]; |
|||
|
|||
// number of data points to store - increase to smooth the animation (based on slider size)
|
|||
base.dataPoints = o.dataPoints; |
|||
// in next update add min/max/step
|
|||
// base.range = o.max - o.min;
|
|||
// base.dataPoints = base.range * o.step;
|
|||
|
|||
base.makeArray(); |
|||
// save the position in the array of the starting value (roughly)
|
|||
var t = $.inArray(base.percent, base.arrayP); |
|||
base.position = (t === -1) ? Math.round(base.percent/100 * base.dataPoints) : t; |
|||
|
|||
base.setSlider(base.percent, null, true); |
|||
if (base.hasCanvas && o.useCanvas) { base.drawCurve(); } |
|||
|
|||
}; |
|||
|
|||
// set position of slider
|
|||
base.setSlider = function(percent, callback, internal) { |
|||
if (!isNaN(percent)) { |
|||
// find position on bezier curve; p = percent (range 0 - 100)
|
|||
// set position of slider without using the array (more precision)
|
|||
percent = parseFloat(percent, 10); |
|||
percent = (percent > 100) ? 100 : percent < 0 ? 0 : percent; |
|||
var css, angle, |
|||
// pos = $.inArray(percent, base.arrayP),
|
|||
p = base.calcBezier(percent/100, base.pointsxy), |
|||
pm1 = (percent - 2 > 0) ? base.calcBezier( (percent-2)/100, base.pointsxy ) : p, |
|||
pp1 = (percent + 2 < 100) ? base.calcBezier( (percent+2)/100, base.pointsxy ) : p, |
|||
// m = slope of tangent - used to change rotation angle of the grip
|
|||
// yes, I could have used the cubic derivative, but this is less math
|
|||
m = (pp1[0] - pm1[0] === 0) ? 90 : (pp1[1] - pm1[1])/(pp1[0] - pm1[0]); |
|||
base.angle = parseInt(Math.atan(m) * base.rad2deg, 10); |
|||
angle = 'rotate(' + base.angle + 'deg)'; |
|||
css = (o.rotateGrip) ? { |
|||
'-webkit-transform' : angle, |
|||
'transform' : angle |
|||
} : {}; |
|||
css.left = p[0] - base.gripCenter[0]; |
|||
css.top = p[1] - base.gripCenter[1]; |
|||
base.$grip |
|||
.attr({ |
|||
'data-angle' : base.angle, |
|||
'data-percent' : percent |
|||
}) |
|||
.css(css); |
|||
// find closest percent in the array - this relies on there being a factor
|
|||
// of 100 datapoints, so it'll need changing when we have a min/max/step
|
|||
base.percent = percent; // Math.round(percent*r)/r;
|
|||
if ((percent !== base.lastPercent && !base.sliding) || !internal) { |
|||
base.$el.trigger('change.pathslider', [base]); |
|||
} |
|||
} |
|||
if (typeof callback === 'function') { callback(base); } |
|||
}; |
|||
|
|||
// relative mouse position
|
|||
base.mousePos = function(e) { |
|||
return [ |
|||
(e.originalEvent.touches ? e.originalEvent.touches[0].pageX : e.pageX) - base.sliderDim[0], |
|||
(e.originalEvent.touches ? e.originalEvent.touches[0].pageY : e.pageY) - base.sliderDim[1] |
|||
]; |
|||
}; |
|||
|
|||
// find percentage given the x,y coordinates
|
|||
// searching through a set array of points starting from the last known position
|
|||
// This allows the curve to loop over itself without mixing up intersecting points
|
|||
// The biggest issue is a very sharp turn
|
|||
base.findPos = function(event) { |
|||
var i, j, dx, dy, px = [], py = [], |
|||
last = base.position, //* base.dataPoints / 100,
|
|||
// check x & y cross ref based on nearby positions (+/- tolerance)
|
|||
t = parseInt(o.tolerance + 1, 10) || 2, // tolerance of 1 is too small
|
|||
r = parseInt(o.range, 10) || base.gripCenter[0], // set to 1/2 width of grip
|
|||
pos = base.mousePos(event); |
|||
// save percent
|
|||
for ( i=0; i < r; i++ ){ |
|||
px = []; py = []; |
|||
for ( j=0; j < t + 1; j++ ){ |
|||
// check positive direction
|
|||
dx = Math.abs(base.arrayX[last+j] - pos[0]) <= i; |
|||
dy = Math.abs(base.arrayY[last+j] - pos[1]) <= i; |
|||
if (dx && dy) { return base.returnPos(last+j); } |
|||
if (dx) { px.push(last+j); } |
|||
if (dy) { py.push(last+j); } |
|||
// check in negative direction
|
|||
dx = Math.abs(base.arrayX[last-j] - pos[0]) <= i; |
|||
dy = Math.abs(base.arrayY[last-j] - pos[1]) <= i; |
|||
if (dx && dy) { return base.returnPos(last-j); } |
|||
if (dx) { px.push(last-j); } |
|||
if (dy) { py.push(last-j); } |
|||
} |
|||
if (px.length === 1 && py.length > 1) { return base.returnPos(px[0]); } |
|||
if (py.length === 1 && px.length > 1) { return base.returnPos(py[0]); } |
|||
} |
|||
return base.returnPos(last); |
|||
}; |
|||
|
|||
// return found position & trigger slide event
|
|||
base.returnPos = function(p) { |
|||
var t = base.position === p; |
|||
base.percent = base.arrayP[p]; |
|||
base.position = p; |
|||
if (!t) { |
|||
if (base.hasCanvas && o.useCanvas) { |
|||
base.drawCurve(); |
|||
} |
|||
base.$el.trigger('slide.pathslider', [base] ); |
|||
} |
|||
return base.percent; |
|||
}; |
|||
|
|||
// build cross-ref array - find position based on x,y coords
|
|||
base.makeArray = function(){ |
|||
var i, t, b = base.pointsxy, |
|||
n = base.dataPoints; |
|||
for ( i=0; i < n+1; i++ ){ |
|||
t = base.calcBezier(i/n, b); |
|||
base.arrayX[i] = t[0]; |
|||
base.arrayY[i] = t[1]; |
|||
base.arrayP[i] = t[2]; |
|||
} |
|||
}; |
|||
|
|||
// Calculate bezier x & y based on percentage (p)
|
|||
// cubic bezier = start(p^3) + cstart(3*p^2*(1−p)) + cend(3*p*(1−p)^2) + end(1−p)^3
|
|||
// b = [ startx,starty, cstartx,cstarty, cendx,cendy, endx,endy ]
|
|||
base.calcBezier = function(p,b){ |
|||
var p2 = p*p, |
|||
omp = (1-p), // omp = one minus p - smart naming ftw!
|
|||
omp2 = omp*omp, |
|||
f1 = omp*omp2, |
|||
f2 = 3*p*omp2, |
|||
f3 = 3*p2*omp, |
|||
f4 = p*p2; |
|||
return [ |
|||
Math.round(b[0]*f1 + b[2]*f2 + b[4]*f3 + b[6]*f4), // bezier x
|
|||
Math.round(b[1]*f1 + b[3]*f2 + b[5]*f3 + b[7]*f4), // bezier y
|
|||
Math.round(p*1000)/10 // percentage with one decimal place
|
|||
]; |
|||
}; |
|||
|
|||
// base.points = [ sx,sy, csxo,csyo, cexo,ceyo, ex,ey ]
|
|||
// sx,sy = start x & y
|
|||
// csxo,csyo = control start x & y offset from start point
|
|||
// cexo,ceyo = control end x & y offset from end point
|
|||
// ex,ey = end x & y
|
|||
// convert needed for canvas - using the offset just makes the code easier to read
|
|||
// base.pointsxy = [ sx, sy, csx, csy, cex, cey, ex, ey ]
|
|||
base.convert2xy = function(p){ |
|||
p = p || base.points; |
|||
return [ |
|||
p[0], p[1], // start x,y
|
|||
p[0] + p[2], p[1] + p[3], // start control x,y
|
|||
p[6] + p[4], p[7] + p[5], // end control x,y
|
|||
p[6], p[7] // end x,y
|
|||
]; |
|||
}; |
|||
|
|||
base.redraw = function(points) { |
|||
// update from options
|
|||
base.points = base.options.points = points || base.options.points; |
|||
// store array of x & y positions for cross reference
|
|||
base.pointsxy = base.convert2xy(); |
|||
// update grip
|
|||
base.update(); |
|||
// update curve
|
|||
base.drawCurve(); |
|||
base.setSlider(base.percent, null, true); |
|||
}; |
|||
|
|||
// Make purdy curve
|
|||
base.drawCurve = function() { |
|||
var ctx, grad, tmp, |
|||
points = base.pointsxy; |
|||
if (!base.$el.find('canvas').length) { |
|||
$('<canvas class="pathslider-canvas"></canvas>').appendTo(base.$el); |
|||
// size in attribute needed to keep canvas size in proportion
|
|||
base.$canvas = base.$el.find('canvas').attr({ width: base.sliderDim[2], height: base.sliderDim[3] }); |
|||
base.canvas = base.$canvas[0]; |
|||
base.ctx = base.canvas.getContext("2d"); |
|||
} |
|||
ctx = base.ctx; |
|||
ctx.clearRect(0, 0, base.sliderDim[2], base.sliderDim[3]); |
|||
ctx.lineCap = o.curve.cap; |
|||
ctx.lineJoin = o.curve.cap; |
|||
ctx.lineWidth = o.curve.width; |
|||
// this can be a gradient or image as well. See
|
|||
// https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Applying_styles_and_colors
|
|||
if ($.isArray(o.curve.color)) { |
|||
grad = ctx.createLinearGradient(points[0], points[1], points[6], points[7]); |
|||
tmp = base.percent/100; |
|||
grad.addColorStop(0, o.curve.color[0]); |
|||
grad.addColorStop(tmp, o.curve.color[0]); |
|||
if (tmp + 0.01 <= 1) { tmp += 0.01; } |
|||
grad.addColorStop(tmp, o.curve.color[1]); |
|||
grad.addColorStop(1, o.curve.color[1]); |
|||
ctx.strokeStyle = grad; |
|||
} else { |
|||
ctx.strokeStyle = o.curve.color; |
|||
} |
|||
tmp = true; |
|||
if (typeof o.drawCanvas === 'function') { |
|||
// return anything except false to continue drawing the curve
|
|||
tmp = o.drawCanvas(base, ctx, points) !== false; |
|||
ctx = base.ctx; |
|||
} |
|||
// tmp returned from drawCanvas; if
|
|||
if (tmp === true) { |
|||
base.finishCurve(ctx, points); |
|||
} |
|||
}; |
|||
|
|||
base.finishCurve = function(ctx, points) { |
|||
ctx = ctx || base.ctx; |
|||
points = points || base.pointsxy; |
|||
ctx.beginPath(); |
|||
ctx.moveTo(points[0], points[1]); |
|||
ctx.bezierCurveTo(points[2], points[3], points[4], points[5], points[6], points[7]); |
|||
ctx.stroke(); |
|||
}; |
|||
|
|||
// Run initializer
|
|||
base.init(); |
|||
|
|||
}; |
|||
|
|||
$.pathslider.defaults = { |
|||
|
|||
// Appearance
|
|||
gripClass : '', // class added to the grip/handle
|
|||
rotateGrip : true, // when true, the grip will rotate based on the shape of the path
|
|||
|
|||
// canvas curve styling
|
|||
useCanvas : true, |
|||
curve : { width: 4, color: "#333", cap: "round" }, |
|||
|
|||
// Usability
|
|||
// sx,sy = start x & y
|
|||
// csxo,csyo = control start x & y offset from start point
|
|||
// cexo,ceyo = control end x & y offset from end point
|
|||
// ex,ey = end x & y
|
|||
// [ sx,sy, csxo,csyo, cexo,ceyo, ex,ey ]
|
|||
points : [ 0,50, 50,-50, -50,-50, 250,50 ], |
|||
|
|||
value : 50, // starting value - range 0 - 100%
|
|||
// min : 0, // minimum value on the slider
|
|||
// max : 100, // maximum value on the slider
|
|||
// step : 1, // step to use between min and max
|
|||
|
|||
// Tweaking
|
|||
dataPoints: 100, // Total number of points of the curve to save; increase in increments of 100 to smooth out the grip movement, but not more than 500 (it slows everything down)
|
|||
tolerance : 3, // distance on the curve from the last position to check; increase this to scroll faster
|
|||
range : 30 // distance, in pixels, from the cursor to a matching x/y on the curve (should be about the same size as the grip)
|
|||
|
|||
}; |
|||
|
|||
$.fn.pathslider = function(options, callback){ |
|||
return this.each(function(){ |
|||
var percent, slider = $(this).data('pathslider'); |
|||
|
|||
// initialize the slider but prevent multiple initializations
|
|||
if ((typeof(options)).match('object|undefined')){ |
|||
if (!slider) { |
|||
(new $.pathslider(this, options)); |
|||
} else { |
|||
return slider.redraw(); |
|||
} |
|||
// If options is a number, set percentage
|
|||
} else if (/\d/.test(options) && !isNaN(options) && slider) { |
|||
percent = (typeof(options) === "number") ? options : parseInt($.trim(options),10); // accepts " 2 "
|
|||
// ignore out of bound percentages
|
|||
if ( percent >= 0 && percent <= 100 ) { |
|||
slider.setSlider(percent, callback); // set percent & callback
|
|||
} |
|||
} |
|||
}); |
|||
}; |
|||
|
|||
$.fn.getpathslider = function(){ |
|||
return this.data('pathslider'); |
|||
}; |
|||
|
|||
})(jQuery); |
Before Width: | Height: | Size: 38 KiB |