clemtre 11 months ago
commit
600d10585d
  1. 277
      LICENSE
  2. 120
      README.md
  3. 80
      signet.sh

277
LICENSE

@ -0,0 +1,277 @@
Part of the Unbound Libraries Documentation
CC4R* COLLECTIVE CONDITIONS FOR RE-USE
COPYLEFT ATTITUDE WITH A DIFFERENCE - VERSION 1.0
------------------------------------------------------------------------
REMINDER TO CURRENT AND FUTURE AUTHORS:
The authored work released under the CC4r was never yours to begin with.
The CC4r considers authorship to be part of a collective cultural effort
and rejects authorship as ownership derived from individual genius. This
means to recognize that it is situated in social and historical
conditions and that there may be reasons to refrain from release and
re-use.
------------------------------------------------------------------------
PREAMBLE
The CC4r articulates conditions for re-using authored materials. This
document is inspired by the principles of Free Culture – with a few
differences. You are invited to copy, distribute, and transform the
materials published under these conditions, and to take the implications
of (re-)use into account.
The CC4r understands authorship as inherently collaborative and
already-collective. It applies to hybrid practices such as human-machine
collaborations and other-than-human contributions. The legal framework
of copyright ties authorship firmly in property and individual human
creation, and prevents more fluid modes of authorial becoming from
flourishing. Free Culture and intersectional, feminist, anti-colonial
work reminds us that there is no tabula rasa, no original or single
author; that authorial practice exists within a web of references.
The CC4r favours re-use and generous access conditions. It considers
hands-on circulation as a necessary and generative activation of
current, historical and future authored materials. While you are free to
(re-)use them, you are not free from taking the implications from
(re-)use into account.
The CC4r troubles the binary approach that declares authored works
either ‘open’ or ‘closed’. It tries to address how a universalist
approach to openness such as the one that Free licenses maintain, has
historically meant the appropriation of marginalised knowledges. It is
concerned with the way Free Culture, Free Licenses and Open Access do
not account for the complexity and porosity of knowledge practices and
their circulation, nor for the power structures active around it. This
includes extractive use by software giants and commercial on-line
platforms that increasingly invest into and absorb Free Culture.
The CC4r asks CURRENT and FUTURE AUTHORS, as a collective, to care
together for the implications of appropriation. To be attentive to the
way re-use of materials might support or oppress others, even if this
will never be easy to gauge This implies to consider the collective
conditions of authorship.
The CC4r asks you to be courageous with the use of materials that are
being licensed under the CC4r. To discuss them, to doubt, to let go, to
change your mind, to experiment with them, to give back to them and to
take responsibility when things might go wrong.
Considering the Collective Conditions for (re-)use involves inclusive
crediting and speculative practices for referencing and resourcing. To
consider the circulation of materials on commercial platforms as
participating in extractive data practices; platform capitalism
appropriates and abuses collective authorial practice. To take into
account that the defaults of openness and transparency have different
consequences in different contexts. To consider the potential necessity
for opacity when accessing and transmitting knowledge, especially when
it involves materials that matter to marginalized communities.
This document was written in response to the Free Art License (FAL) in a
process of coming to terms with the colonial structuring of knowledge
production. It emerged out of concerns with the way Open Access and Free
Culture ideologies foregrounding openness and freedom as universal
principles might replicate some of the problems with conventional
copyright.
DEFINITIONS
« LEGAL AUTHOR » In the CC4r, LEGAL AUTHOR is used for the individual
that is assigned as “author” by conventional copyright. Even if the
authored work was never theirs to begin with, he or she is the only one
that is legally permitted to license a work under a CC4r. This license
is therefore not about liability, or legal implications. It cares about
the ways copyright contributes to structural inequalities.
« CURRENT AUTHOR » can be used for individuals and collectives. It is
the person, collective or other that was involved in generating the work
created under a CC4r license. CURRENT and FUTURE AUTHOR are used to
avoid designations that overly rely on concepts of ‘originality’ and
insist on linear orders of creation.
« FUTURE AUTHOR » can be used for individuals and collectives. They want
to use the work under CC4r license and are held to its conditions. All
future authors are considered coauthors, or anauthors. They are
anauthorized because this license provides them with an unauthorized
authorization.
« LICENSE » due to its conditional character, this document might
actually not qualify as a license. It is for sure not a Free Culture
License. see also: UNIVERSALIST OPENNESS.
« (RE-)USE » the CC4r opted for bracketing “RE” out of necessity to mess
up the time-space linearity of the original.« OPEN <-> CLOSED » the CC4r
operates like rotating doors… it is a swinging license, or a hinged
license.
« UNIVERSALIST OPENNESS » the CC4r tries to propose an alternative to
universalist openness. A coming to terms with the fact that universal
openness is “safe” only for some.
0. CONDITIONS
The invitation to (re-)use the work licenced under CC4r applies as long
as the FUTURE AUTHOR is convinced that this does not contribute to
oppressive arrangements of power, privilege and difference. These may be
reasons to refrain from release and re-use.
If it feels paralyzing to decide whether or not these conditions apply,
it might point at the need to find alternative ways to activate the
work. In case of doubt, consult for example
https://constantvzw.org/wefts/orientationspourcollaboration.en.html.
1. OBJECT
The aim of this license is to articulate collective conditions for
re-use.
2. SCOPE
The work licensed under the CC4r is reluctantly subject to copyright
law. By applying CC4r, the legal author extends its rights and invites
others to copy, distribute, and modify the work.
2.1 INVITATION TO COPY (OR TO MAKE REPRODUCTIONS)
When the conditions under 0. apply, you are invited to copy this work,
for whatever reason and with whatever technique.
2.2 INVITATION TO DISTRIBUTE, TO PERFORM IN PUBLIC
As long as the conditions under 0. apply, you are invited to distribute
copies of this work; modified or not, whatever the medium and the place,
with or without any charge, provided that you:
- attach this license to each of the copies of this work or indicate
where the license can be found;
- make an effort to account for the collective conditions of the work,
for example what contributions were made to the modified work and by
whom, or how the work could continue;
- specify where to access other versions of the work.
2.3 INVITATION TO MODIFY
As long as the conditions under 0. apply, you are invited to make future
works based on the current work, provided that you:
- observe all conditions in article 2.2 above, if you distribute
future works;
- indicate that the work has been modified and, if possible, what kind
of modifications have been made.
- distribute future works under the same license or any compatible
license.
3. INCORPORATION OF THE WORK
Incorporating this work into a larger work (i.e., database, anthology,
compendium, etc.) is possible. If as a result of its incorporation, the
work can no longer be accessed apart from its appearance within the
larger work, incorporation can only happen under the condition that the
larger work is as well subject to the CC4r or to a compatible license.
4. COMPATIBILITY
A license is compatible with the CC4r provided that:
- it invites users to take the implications of their appropriation
into account;
- it invites to copy, distribute, and modify copies of the work
including for commercial purposes and without any other restrictions
tha
n those required by the other compatibility criteria;
- it ensures that the collective conditions under which the work was
authored are attributed unless not desirable, and access to previous
versions of the work is provided when possible;
- it recognizes the CC4r as compatible (reciprocity);
- it requires that changes made to the work will be subject to the
same license or to a license which also meets these compatibility
criteria.
5. LEGAL FRAMEWORK
Because of the conditions mentioned under 0., this is not a Free
License. It is reluctantly formulated within the framework of both the
Belgian law and the Berne Convention for the Protection of Literary and
Artistic Works.
“We recognize that private ownership over media, ideas, and technology
is rooted in European conceptions of property and the history of
colonialism from which they formed. These systems of privatization and
monopolization, namely copyright and patent law, enforce the systems of
punishment and reward which benefit a privileged minority at the cost of
others’ creative expression, political discourse, and cultural survival.
The private and public institutions, legal frameworks, and social values
which uphold these systems are inseparable from broader forms of
oppression. Indigenous people, people of color, queer people, trans
people, and women are particularly exploited for their creative and
cultural resources while hardly receiving any of the personal gains or
legal protections for their work. We also recognize that the public
domain has jointly functioned to compliment the private, as works in the
public domain may be appropriated for use in proprietary works.
Therefore, we use copyleft not only to circumvent the monopoly granted
by copyright, but also to protect against that appropriation.”
[Decolonial Media License]
6. YOUR RESPONSIBILITIES
The invitation to use the work as defined by the CC4r (invitation to
copy, distribute, modify) implies to take the implications of the
appropriation of the materials into account.
7. DURATION OF THE LICENSE
This license takes effect as of the moment that the FUTURE AUTHOR
accepts the invitation of the CURRENT AUTHOR. The act of copying,
distributing, or modifying the work constitutes a tacit agreement. This
license will remain in effect for the duration of the copyright which is
attached to the work. If you do not respect the terms of this license,
the invitation that it confers is void. If the legal status or
legislation to which you are subject makes it impossible for you to
respect the terms of this license, you may not make use of the rights
which it confers.
8. VARIOUS VERSIONS OF THE LICENSE
You are invited to reformulate this license by way of new, renamed
versions. Link to license on gitlab. You can of course make
reproductions and distribute this license verbatim (without any
changes).
9. USER GUIDE
– How to use the CC4r?
To apply the CC4r, you need to mention the following elements:
[Name of the legal author, title, date of the work. When applicable,
names of authors of the common work and, if possible, where to find
other versions of the work].
Copyleft with a difference: This is a collective work, you are invited
to copy, distribute, and modify it under the terms of the CC4r [link to
license].
Short version: Legal author=name, date of work. CC4r [link to license]
– Why use the CC4r?
1. To remind yourself and others that you do not own authored works;
2. To not allow copyright to hinder works to evolve, to be extended, to
be transformed;
3. To allow materials to circulate as much as they need to;
4. Because the CC4r offers a legal framework to disallow
mis-appropriation by insisting on inclusive attribution. Nobody can
take hold of the work as one’s exclusive possession.
– When to use the CC4r?
Any time you want to invite others to copy, distribute and transform
authored works without exclusive appropriation but with considering the
implications of (re-)use, you can use the CC4r. You can for example
apply it to collective documentation, hybrid productions, artistic
collaborations or educational projects.
– What kinds of works can be subject to the CC4r?
The Collective Conditions for re-use can be applied to digital as well
as physical works.You can choose to apply the CC4r for any text,
picture, sound, gesture, or whatever material as long as you have legal
author’s rights.
– Background of this license:
The CC4r was developed for the Constant worksession Unbound libraries
(spring 2020) and followed from discussions during and contributions to
the study day Authors of the future (Fall 2019). It is based on the Free
Art License and inspired by other licensing projects such as the
(Cooperative) Non-Violent Public License and the Decolonial Media
license. Copyleft Attitude with a difference, 6 October 2020. Read more
about CC4r in: “Collectively Setting Conditions for Re-Use” (Elodie
Mugrefya & Femke Snelting, MARCH, spring 2022)

120
README.md

@ -0,0 +1,120 @@
# Presentation
Signet.sh est un script shell qui transforme une base de donnée de liens
en une page html. La conversion est faite par une commande awk au sein
d'une déclaration here-doc qui est redirigé dans une page html.
J'ai créé ce script car je trouve le gestionnaire de marque-page de
firefox instatsifant, autant dans sa forme que dans le format utilisé
(sqlite). Ce script et les utilitaires autours proposent une une
alternative pour archiver ses navigations internet.
## Format de la base de donné
Seule une Url est requise, le reste des champs sont
facultatifs, on compte les champs suivants :
URL :
Name : Par défaut la balise </title> de la page
Description
Tags : mots-clés séparés d'une virgule
Date : heure posix de l'ajout du lien
Color : couleur css (nom, hex, rgb etc...)
Par exemple, dans un fichier qui s'appelle par défaut BOOKMARKS :
...
URL: https://rosettacode.org/wiki/Rosetta_Code
Name: Rosetta Code
Description:
Tags: literacy, read
Date: 1704675057
URL: https://www.emigre.com/TypeSpecimens
Name: Emigre: Type Specimens
Description:
Tags: emigre, type
Date: 1704680644
Color: Purple
URL: https://web.archive.org/web/20211025182257/http://len.falken.ink/
Name: Wayback Machine
Description:
Tags: read
Date: 1704712747
...
# Autres gestionnaires de signets de favoris :
- nb https://xwmx.github.io/nb/ (AGPL-3.0)
- ??
# Dependances :
Pour ajouter un lien via l'interface proposée, on aura besoin
d'installer dmenu ~~et htmlq~~.
- dmenu https://tools.suckless.org/dmenu/ (MIT/X)
- ~~htmlq https://github.com/mgdm/htmlq (MIT)~~ remplacé par une
commande awk
## dmenu
Dmenu est un menu interactif qui permet de sélectionner et d'écrire des
valeurs dans un menu. Ces valeurs peuvent provenir d'un programme
fournit en entrée un *pipe* "|", par exemple :
ls | dmenu
affiche un menu déroulant avec les fichiers de mon répertoire. Dans
notre script, pour stocker le choix dans une variable, on peut faire :
tags=$(echo "" | dmenu -p "Enter comma-separated tags:")
## ~~htmlq~~
Htmlq est un parseur d'html écrit en go. Peu importe quel parseur on
utilise, on dirait que chaque langage a le sien.
Il s'agit ici de fournir au programme une chaîne de caractère en entrée
et d'en filtrer des éléments html
Si en javascript pour récupérer tous les <h1> enfants d'une <section> on
peut faire
document.querySelectorAll('section h1')
En shell, c'est plus compliqué, htmlq est fait pour ça :
cat fichier.html | htmlq 'section h1'
Et pour récurer seulement le texte -- l'équivalent en javascript de
.innerHTML :
cat fichier.html | htmlq 'section h1' --text
On s'en sert pour récupérer la balise titre de la page à ajouter :
curl page.html | htmlq 'title' --text
Patch pré-sortie :
C'est quelque chose qu'il faudra changer, pour l'instant cette étape est
bloquante. Pour peu que la connection internet coupe lors de l'ajout
d'un lien, il faudra attendre la fin de la tentative de curl pour passer
au prochain champs du script :/ sorry !
# Usage : (faites les votre)
Pour ajouter un lien, je séléctionne l'url de la page avec Ctrl + l, la
copie et lance add.sh avec Super + i. _Si quelqu'un sait récupérer l'url
de la page courante du navigateur sans avoir à la copier, ça
économiserait deux étapes._
En résumé : Ctrl + l, Ctrl + c, Super + i
(ou plus court : Ctrl + l + i, Super + i)
Super + i car dans le fichier de configuration de mon gestionnaire de
fenêtre situé dans ~/.config/awesome/rc.lua j'ai les lignes suivantes :
awful.key({modkey}, "i", function()
awful.util.spawn_with_shell("add.sh") end,
{description = "Enregistre le lien copié dans signet.sh"}),
# Structure du répertoire
BOOKMARKS → Une base de donnée de liens
add.sh → Un script pour rajouter un lien dans la base de donné
- dmenu
- ./signet.sh
signet.sh → Le script shell en lui-même
- Il génère une nouvelle page html à partir de la base
de donnés de liens (par défaut index.html)
style.css → La feuille de style pour styliser index.html
script.js → Un peu de javascript pour:
- rechercher dans la </textarea>
- ajouter les couleurs de fond aux entrées qui en ont
- si le champs de description est vide, ne pas
l'afficher
- formater les dates du temps posix au format AA-MM-JJ
/!\ Prochainement /!\
starred.sh → Un curl des repos de l'api github https://api.github.com/users/[user]/starred , formaté de json à une liste html sans jq !

80
signet.sh

@ -0,0 +1,80 @@
#!/bin/bash
DEST=index.html
# I thought about using recutils db from GNU but went back to plain text
#DB=BOOKMARKS.rec
DB=BOOKMARKS
cat <<- EOF > $DEST
<!DOCTYPE html>
<html>
<head>
<title>⛵ → $(date "+%g-%m-%d, %H:%M")</title>
<script defer src="jquery-3.6.4.js"></script>
<script defer src="script.js"></script>
<link rel="stylesheet" href="style.css">
<meta charset="utf-8" />
</head>
<body>
<div id="cc"></div>
<textarea autofocus id=""></textarea>
<nav>
$(
awk '/Tags: ./ {print tolower($0)}' $DB |\
sed -e 's/tags: //' -e 's/,/\n/g' | sed 's/^ //g' |\
sort | uniq -c | sort -nr |\
awk '{print "<p count=\"" $1 "\">" $2 "</p>"}'
)
</nav>
<ol>
$(
awk -v RS= '!/Tags: .*hide/ {print $0 "\n"}' $DB | \
awk -v RS= '
{
if ($0 != "") {
split($0, lines, "\n")
color = ""
for (i in lines) {
split(lines[i], parts, ": ")
field = parts[1]
value = parts[2]
if (field == "Color") {
color = value
}
vals[i] = value
}
URL=vals[1]
NAME=vals[2]
DESC=vals[3]
TAGS=vals[4]
DATE=vals[5]
print "<li>"
print "<a href=\"" URL "\">"
if (color != "") {
print "<section color=\"" color "\">"
}
else {
print "<section>"
}
print "<h5>" URL "</h5>" \
"<h1>" NAME "</h1>" \
"<h2>" DESC "</h2>" \
"<h3>" TAGS "</h3>" \
"<h4>" DATE "</h4>"
print "</section>"
print "</a>"
print "</li>"
}
} '
)
</ol>
</body>
</html>
EOF
Loading…
Cancel
Save