initial migration

This commit is contained in:
sejo 2021-06-14 22:03:28 -05:00
commit 3c4e9af476
43 changed files with 2242 additions and 0 deletions

341
gemtext2html.awk Normal file
View File

@ -0,0 +1,341 @@
# gemtext2html
# convierte un archivo en gemtext a html de acuerdo a la spec
# excepción: enlaces a imagen (jpg, png, gif) se vuelven <img>
# TODO actualizar descripción
# TODO h2 en nav?
#
# importante: solo un {wikilink} (con o sin espacios) por línea
#
# modo de uso:
# awk -f gemtext2html.awk archivo.gmo > archivo.html
#
BEGIN{
sitio = "compudanzas"
# para poder abrir y cerrar <ul>, <pre>, <p>:
modo_lista = 0
modo_pre = 0
modo_parrafo = 0
modo_galeria = 0
en_section = 1 #empezamos abriendo una <section> sin h1
navcount = 0
bloque = 0 # para no agregar <br/> después de headers y blockquotes
print "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>"
print "<html xmlns='http://www.w3.org/1999/xhtml' lang='es-MX,en'>"
print "<head>"
print "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />"
print "<meta content='initial-scale=1.0, maximum-scale=1.0, user-scalable=yes' name='viewport'/>"
# print "<meta http-equiv='onion-location' content='http://chhhqibec5pvmyxmdobfdx33xhhtbla5lvrs2fgn7knh7kaaz4kgylad.onion.onion' />"
print "<link rel='stylesheet' href='./static/estilo.css'>"
# print " <link rel='icon' href='./img/icon_bola.gif' type='image/gif' sizes='16x16'> "
contenido = "<main><section>"
nav = "<nav><ul>"
}
function appendContenido( t ){
contenido = contenido t "\n"
}
function appendNav( t ){
nav = nav t "\n"
navcount++
}
function wikiLink( t ){
i = match( t, /{.+}/)
if ( i ){
ifinal = index(t, "}") # índice del } final
prev = substr(t, 1, i-1) # string previa al link
link = substr(t, i, ifinal-i+1) # {link}
nombre = substr(t, i+1, ifinal-i-1) # link
nombre = nombre2Link( nombre, "_" )
post = substr(t, ifinal+1) # string posterior
return prev "<a href='./" nombre ".html'>" link "</a>" post
}
else{
return t
}
}
function nombre2Link( t, r ){ # convierte un nombre con espacios, a uno con r (e.g. "_"
gsub(" ",r,t);
return t
}
NR == 1{
titulo = $0
sub("#[[:blank:]]+","",titulo) #prefijo
print "<title>" sitio " &mdash; " titulo "</title>"
print "</head>"
print "<body>"
print "<header>"
# print "<p><a href='./index.html'>{" sitio "}</a></p>"
print "<p><a href='./index.html' title='compudanzas'>{<img src='./img/icon_bola.gif' style='margin:0' alt='icono de compudanzas'/>}</a></p>"
print "<h1>"titulo"</h1>"
print "</header>"
bloque = 1
next # lee la siguiente línea
}
/^\+ /{ # include literal
sub(/^+ /,"",$0) # elimina el +
appendContenido( $0 )
next
}
/^&/{ # include literal gemtext
next
}
/^[[:blank:]]*$/ { # línea vacía
if( !modo_pre ) {
if( modo_lista ){ # cierra la lista
modo_lista = 0
appendContenido( "</ul>" )
}
else if( modo_parrafo ){ # cierra el párrafo
modo_parrafo = 0
appendContenido( "</p>" )
}
else if( modo_galeria ){
modo_galeria = 0
appendContenido( "</gallery>" )
}
# else
# appendContenido( "<br/>" )
if( bloque ) # si lo previo fue header o blockquote
bloque = 0;
}
else
appendContenido( $0 )
next
}
/^=>/{ # link
if(!modo_pre){
if( modo_lista ){ # cierra la lista
modo_lista = 0
appendContenido( "</ul>" )
}
else if( modo_parrafo ){ # cierra el párrafo
modo_parrafo = 0
appendContenido( "</p>" )
}
bloque = 1 #empieza bloque porque es <p>
# borra flecha del inicio
sub("^=>","",$0)
# ahora $1 es el path, $2 a $NF el texto
# concatena todo el texto
texto = $2
for(i=3; i<=NF; i++){
texto = texto" "$i
}
if( match($1, /^\.\//)) { # si es link local
# si el path es imagen
if( match($1, /(png|jpg|gif)$/) ){
# crea imagen <img>
if( !modo_galeria ){
appendContenido("<gallery>")
modo_galeria = 1
}
appendContenido("<img src='"$1"' alt='"texto"' loading='lazy'/>")
}
# si el path no es imagen y es .gmi
else if( match($1, /gmi$/) ){
# convierte enlace de .gmi a .html !
sub(".gmi$",".html",$1)
# crea link <a>
appendContenido("<p><a href='"$1"'>"texto"</a></p>")
}
else{
appendContenido("<p><a href='"$1"'>"texto"</a></p>")
}
}
else{ # link externo
appendContenido("<p><a href='"$1"' rel=external target=_blank>"texto"</a></p>")
}
}
else{
appendContenido( $0 )
}
next
}
/^* /{ # lista
if(!modo_pre){
if(!modo_lista){ # inicia la lista
if(modo_parrafo){
modo_parrafo = 0
appendContenido( "</p>" )
}
modo_lista = 1
appendContenido( "<ul>" )
}
sub("*[[:blank:]]+","<li>",$0)
sub("$","</li>",$0)
appendContenido( wikiLink($0) )
}
else
appendContenido( $0 )
next
}
/^```/{ # preformatted
if(modo_pre){
# cierra preformatted
modo_pre = 0
appendContenido( "</pre>" )
}
else{
if( modo_lista ){ # cierra la lista
modo_lista = 0
appendContenido( "</ul>" )
}
else if( modo_parrafo ){ # cierra el párrafo
modo_parrafo = 0
appendContenido( "</p>" )
}
# abre preformatted
modo_pre = 1
appendContenido( "<pre>" )
}
next
}
/^> /{ # blockquote
if(!modo_pre){
sub(">[[:blank:]]+","<blockquote>",$0)
sub("$","</blockquote>",$0)
bloque = 1
}
appendContenido( $0 )
next
}
/^# /{ # h1
if(!modo_pre){
sub("#[[:blank:]]+","",$0) #prefijo
sub("$","",$0) #sufijo
bloque = 1
if( !en_section ){ # si no se ha iniciado una sección antes
appendContenido( "<section>" )
en_section = 1
}
else{
appendContenido( "</section><section>" )
}
# crea header con id
appendContenido( "<h1 id='"$0"'>"$0"</h1>" )
# agrega header a navegación
appendNav( "<li><a href='#"$0"'>"$0"</a></li>" )
}
else{
appendContenido( $0 )
}
next
}
/^## /{ # h2
if(!modo_pre){
sub("##[[:blank:]]+","",$0)
sub("$","",$0)
# crea header con id
appendContenido( "<h2 id='"$0"'>"$0"</h2>" )
bloque = 1
}
else{
appendContenido( $0 )
}
next
}
/^### /{ # h3
if(!modo_pre){
sub("###[[:blank:]]+","",$0)
sub("$","",$0)
appendContenido( "<h3 id='"$0"'>"$0"</h3>" )
bloque = 1
}
else{
appendContenido( $0 )
}
next
}
#$0 !~ /^(=>|```|#{1,3} |* |\+|>|[[:blank:]]*$)/{ # líneas de texto (no "especiales")
{ # cualquier otra línea de texto
if(!modo_pre){
if(!modo_parrafo){
modo_parrafo = 1
appendContenido( "<p>" )
}
else # nueva línea en el mismo párrafo
appendContenido( "<br/>" )
# busca y convierte wikiLink (máx uno por línea)
appendContenido( wikiLink($0) )
}
else{
gsub("<","\\&lt;",$0)
gsub(">","\\&gt;",$0)
appendContenido( $0 )
}
}
END{
# imprime y cierra nav
if(navcount){
print nav
print "</ul></nav>"
}
# imprime contenido
print contenido
# cierra tags que pudieron haber quedado abiertas
if(modo_pre)
print "</pre>"
else if(modo_parrafo)
print "</p>"
else if(modo_lista)
print "</ul>"
# finaliza...
print "</section>"
print "</main>"
print "<footer>"
# print "<p><a href='./index.html'>{" sitio "}</a></p>"
print "<p>most recent update: "
print "<time datetime='"fecha"'>1" fecha"</time>"
print "</p>"
# fecha = system( "date -r " FILENAME " --rfc-3339=date" )
# print "</p>"
#
print "<p><a href='./index.html' title='compudanzas'>{compudanzas}</a> &mdash; "
print "<a href='./license.html'>{license}</a></p>"
print "</footer>"
print "</body>"
print "</html>"
}

68
generasitio.sh Executable file
View File

@ -0,0 +1,68 @@
#!/bin/sh
mkdir -p web/static
mkdir -p gem
fecha=$(date +"%s")
echo "empezando conversión, estamos en ${fecha}"
echo "revisando y copiando imágenes..."
for f in $(find src/ -regextype awk -regex ".*(jpg|png|gif)")
do
path="web/${f#src/}" # quita el prefijo de src/ y agrega web/
gempath="gem/${f#src/}" # quita el prefijo de src/ y agrega gem/
mkdir -p $(dirname $path) # crea directorio si no existe
mkdir -p $(dirname $gempath) # crea directorio si no existe
cp -vu $f $path
cp -vu $f $gempath
done
#cp src/tw.txt web/
#cp src/tw.txt gem/
#cp src/llave_sejo.asc web/
#cp src/llave_sejo.asc gem/
cp src/estilo.css web/static/
# limpia
echo "limpiando archivos previos..."
rm web/*html
rm gem/*gmi
# crea índice
echo "generando índice..."
rm src/pages.gmo
ls -t src/*gmo | awk -f genindice.awk > src/pages.gmo
echo "revisando y convirtiendo archivimos gmo a html y gmi..."
i=0
# convierte y actualiza archivos gmi a html
for f in $(find src/ -iname *.gmo)
do
path=${f#src/} # quita el prefijo de "src/"
htmlpath="web/${path%gmo}html" # agrega "web/" y cambia el sufijo
gempath="gem/${path%gmo}gmi" # agrega "gem/"
fecha=$(date -r $f --rfc-3339=date)
# echo "${f}"
# echo "${f} -> ${htmlpath}"
# echo "${f} -> ${gempath}"
# haz la conversión
awk -v fecha=$fecha -f gemtext2html.awk $f > $htmlpath
awk -v fecha=$fecha -f gmo2gmi.awk $f > $gempath
(( i++ ))
done
echo "convertidas ${i} páginas!"

23
genindice.awk Normal file
View File

@ -0,0 +1,23 @@
# ls src/*gmo | awk -f genindice.awk
function link2nombre( t ){ # convierte un nombre con "_" a uno con espacios
gsub("_"," ",t);
sub(".gmo", "", t)
return t
}
BEGIN{
print "# index of pages"
print
print "last modified, above:"
print
}
{
sub("src/","",$0)
nombre = link2nombre($0) # convierte _ a espacios
sub(".gmo",".gmi",$0)
if(nombre!="index") # no imprimas el índice
print "=> ./"$0" {"nombre"}"
}

43
gmo2gmi.awk Normal file
View File

@ -0,0 +1,43 @@
function nombre2Link( t, r ){ # convierte un nombre con espacios, a uno con r (e.g. "_"
gsub(" ",r,t);
return t
}
/^+ /{ # literal html
next # salta la línea
}
/^& /{ # literal gemtext
sub(/^& /,"",$0)
print $0
next
}
# imprime líneas normamlmente
{
print $0
}
# si tienen sintaxis de wikilink, y no son líneas de enlace, agrega el link
# (el % es por las líneas de uxn jaja)
/^[^=%].+{.+}/{
i = match( $0, /{.+}/)
ifinal = index($0, "}") # índice del } final
link = substr($0, i, ifinal-i+1) # {link}
nombre = substr($0, i+1, ifinal-i-1) # link
nombre = nombre2Link( nombre, "_" )
print "=> ./" nombre ".gmi " link
}
# agrega footer
END{
print ""
print "most recent update on: 1" fecha
print "=> ./index.gmi {compudanzas}"
print "=> ./license.gmi {license}"
}

23
src/about.gmo Normal file
View File

@ -0,0 +1,23 @@
# about
compudanzas is a research project aimed at the development of alternative modes of computation.
# mission
we enlarge to a human-scale and slow down to a human-speed the processes that give rise to what is understood as computing.
through our experiments we ask: what happens when computers are dances, rituals, games, instead of closed electronic boxes with a high environmental and social cost?
to what extent can we reappropriate these logics to inspire other ways of being in the world?
what can be the role of non-electronic, very slow, human-scale, and seemingly useless computers, in a world that seems to be in {collapse}?
are they alternative and empowering didactic materials? performances? puzzles? passtimes? magic tricks? marvelous pursuits?
# meta
read our updates in the {log}
visit the index of {pages} in the site
=> ./contact.gmi {contact}

54
src/ciclo_de_memoria.gmo Normal file
View File

@ -0,0 +1,54 @@
# ciclo de memoria
imaginemos la construcción de una memoria que existe en función el tiempo, como las antiguas líneas de retardo de mercurio, pero en el campo; un juego; un grupo de personas en {las danzas}.
un "dispositivo"-danza que almacena información binaria, con capacidad de ser escrita y leída.
=> ./img/ilustracion_ciclo-de-memoria.png pequeña ilustración del ciclo de memoria
# guía
cada persona ve a alguien más, y es vista por otra distinta.
para iniciar, podemos acomodarnos en círculo. nuestra red es un ciclo.
cada persona ve a alguien más, poniendo atención en cuál de las tres señales / movimientos realiza:
* corte
* alto
* bajo
hay música con pulso.
en cada beat, la persona replica la señal que vio adelante.
así, poco a poco, un dato palabra, número, o lo que sea, se recorre, circula, da vueltas.
# la lectura
para leer el dato almacenado, una persona-lectora fuera del ciclo se sintoniza a la frecuencia de pulsos.
la persona-lectora se enfoca en observar a una sola persona dentro, que se convierte en la persona-salida.
al observar la señal de corte, la persona-lectora empieza a anotar, repetir, transmitir, las señales de alto o bajo que vengan después.
así continúa hasta observar de nuevo el corte: el dato habrá sido leído, y se mantiene en circulación.
# la escritura
ya sea que se decida de antemano la persona-entrada al ciclo, o todas las personas estén atentas para poder serlo, para escribir en la memoria hace falta una persona afuera, la persona-escritora.
ella se sincroniza con los pulsos, y le avisa a la persona-entrada que viene a escribir.
la persona-entrada espera a recibir y replicar la señal de corte de la persona a la que estaba siguiendo.
justo cuando eso sucede, la persona-entrada empezará a ver y seguir a la persona-escritora.
la persona-escritora, paso a paso, pulso a pulso, da las señales de alto o bajo a escribir, hasta llegar al corte.
y así, paso a paso, pulso a pulso, poco a poco, el ciclo ahora tendrá un nuevo dato.
## llega(n) aquí
=> ./las_danzas.gmi {las danzas}

44
src/collapse.gmo Normal file
View File

@ -0,0 +1,44 @@
# collapse
how to live life when ecological and social collapse are coming in the short term?
# textos
que escribo para ir procesando, aprendiendo y compartiendo:
=> ./después_ahora.gmi {después ahora}
# notes
## deep adaptation
deep adaptation agenda, the 4 Rs:
* resilience: how do we keep what we really want to keep?
* relinquishment: what do we need to let go of in order to not make matters worse?
* restoration: what can we bring back to help us with the coming difficulties and tragedies?
* reconciliation: with what and whom can we make peace with as we face our mutual mortality?
=> https://jembendell.com/2019/05/15/deep-adaptation-versions/ versions of the deep adaptation paper - jem bendell
## how to live like the world is ending
* act like were about to die.
* act like we might not die right away.
* act like we might have a chance to stop this.
* act like everything will be okay.
=> http://birdsbeforethestorm.net/2019/12/how-to-live-like-the-world-is-ending/ how to live the world is ending - margaret killjoy
## more references
=> https://theanarchistlibrary.org/library/margaret-killjoy-take-what-you-need-and-compost-the-rest-an-introduction-to-post-civilized-theo take what you need and compost the rest: an introduction to post-civilized theory - margaret killjoy
=> https://www.resilience.org/stories/2019-05-10/loving-a-vanishing-world/ loving a vanishing world - emily johnston
=> https://deepgreenresistance.org/ deep green resistance
=> https://stopfossilfuels.org/ stop fossil fuels
=> http://viznut.fi/texts-en/permacomputing.html permacomputing | viznut
## incoming links
=> ./about.gmi {about}

View File

@ -0,0 +1,48 @@
# coloring computers
non-electronic computers that work when you color them according to a simple set of rules.
an exploration of computation without electricity and semiconductors, an attempt to reinvent digital systems away from efficiency and productivity, and hopeful prototypes to expose the inner workings of computers.
# 4-bits to 7-segment display hexadecimal decoder (12020)
=> ./img/foto_20201130_hex7segdecoder_01.png the coloring computer/decoder, waiting to be activated
=> ./img/foto_20201130_hex7segdecoder_02.png a human coloring the wires according to the logic rules
=> ./img/foto_20201130_hex7segdecoder_03.png the coloring computer/decoder, with an input of 0011, and an output that can be read as 3
a coloring decoder built with NOT (triangle), AND (semicircle), and OR (the other shape (?)) gates, based on a manual design.
=> ./img/dibujo_20201207_hex7segdecoder_small.png the complete decoder
=> https://opguides.info/engineering/digitallogic/ colored and animated version by Vega
=> https://ipfs.io/ipfs/QmZv53hr7QEzxrPaRNpiyU9VUNHw9UgyaTUqYD9x9iFpNA/dibujo_20201207_hex7segdecoder.png download the decoder in full size 1487x3057 (png, ~446KB)
# computadora no(r)pal (12019)
=> ./img/dibujo_20190715-norpalera-fulladder_blanco_small.png logic circuit in the shape of nopal
a full-adder built with NOR gates in the shape of no(r)pales
=> https://ipfs.io/ipfs/QmPz2D3bZRYFi1HnfiNJB8o9TZZvH8atuYpFixMKccYCYP/dibujo_20190715-norpalera-fulladder_blanco.png download computadora no(r)pal in full size 1200x1600 (png, ~429KB)
# coloring computers (12018)
the original ones
=> ./img/foto_coloring-computers_cover-lee.png photo of the cover of the zine, colored
=> ./img/foto_coloring-computers_7seg-lee.png photo of a pair of colored pages of the zine, with a 7 segment display showing the digits 2 and 3
=> ./img/foto_coloring-computers_pcd2019.png photo of a pair of colored pages of the zine, showing a digital circuit answering if two colors are the same
the booklet contains three series of computers: computers that compare, computers that count, and computers that play. they are all NOR-based logic circuits designed by using truth tables, karnaugh maps, and maxterm expansions.
=> https://ipfs.io/ipfs/QmYz7DPRWypGQcbAHr7Mi8EKB6ntSPsEnUsCXbAhBiHQZP/ original site and resources
=> https://ipfs.io/ipfs/QmYz7DPRWypGQcbAHr7Mi8EKB6ntSPsEnUsCXbAhBiHQZP/coloringcomputers_pages.pdf download the page-by-page zine (pdf, ~1.5MB)
=> https://ipfs.io/ipfs/QmYz7DPRWypGQcbAHr7Mi8EKB6ntSPsEnUsCXbAhBiHQZP/coloringcomputers.pdf download the ready-to-print-and-cut zine (pdf, ~1.4MB)
CC-BY-SA 4.0
for the print and cut zine: print double-sided, cut in half, fold the pages and assemble
## incoming links
=> ./talks_and_workshops.gmi {talks and workshops}

101
src/compuertas.gmo Normal file
View File

@ -0,0 +1,101 @@
# compuertas lógicas
las bases de los circuitos digitales.
estos incluyen, claro está, a las {danzas compuertas}
usamos la convención de utilizar dos valores posibles: 1 para denominar arriba, o verdadero, y 0 para denominar abajo, o falso.
# una entrada
## buffer
la salida es igual a la entrada
## NOT
la salida es lo opuesto a la entrada.
también podríamos decir que la salida es lo que no es la entrada.
# dos entradas
con dos entradas binarias, hay cuatro posibles combinaciones.
## AND
la salida es verdadera únicamente cuando todas sus entradas son verdaderas.
en cualquier otro caso, la salida es falsa.
## OR
la salida es verdadera cuando aunque sea una de sus entradas sea verdadera.
únicamente cuando todas las entradas son falsas, su salida es falsa.
## XOR
la salida es verdadera cuando una y solo una de sus entradas sea verdadera.
en cualquier otro caso, la salida es falsa.
también la podemos describir así: la salida es verdadera cuando las entradas son diferentes, y es falsa cuando las entradas son iguales.
## NOR
la salida es verdadera cuando ninguna de sus entradas es verdadera.
que es lo mismo que decir que su salida es verdadera cuando todas sus entradas son falsas.
en cualquier otro caso, su salida es falsa.
NOR es una de las compuertas universales: con ella se puede construir a todas las demás.
esto se debe en parte a que NOR se convierte en NOT si sus dos entradas están conectadas como una sola.
por otro lado, NOR es equivalente a negar con NOT la salida de una compuerta OR.
por cómo funciona, también la podemos considerar como un AND que funciona con 0 en vez de con 1.
## NAND
la salida es verdadera cuando aunque sea una de sus entrada es falsa.
únicamente cuando todas sus entradas son verdaderas, su salida es falsa.
NAND es la otra compuerta universal. esto se debe en parte a que se convierte en NOT si sus dos entradas están conectadas como una sola.
por otro lado, NAND es equivalente a negar con NOT la salida de una compuerta AND.
por cómo funciona, también la podemos considerar como un OR que funciona con 0 en vez de con 1.
# más entradas
todas las compuertas funcionan igual para más de dos entradas, excepto XOR.
importante: AND y OR poseen la propiedad distributiva.
por ejemplo, un AND de tres entradas (a, b, c) es equivalente a un AND de dos entradas (a, b), con su salida (x) conectada a la entrada de otro AND de dos entradas (x, c)
esto no sucede así ni en NOR ni en NAND. en su caso, hay que agregar un NOT entre las dos compuertas.
# demorgan
una compuerta AND es equivalente a una compuerta NOR con sus entradas negadas.
una compuerta OR es equivalente a una compuerta NAND con sus entradas negadas.
## llega(n) aquí
=> ./danzas_compuertas.gmi {danzas compuertas}
=> ./logiteca.gmi {logiteca}

7
src/contact.gmo Normal file
View File

@ -0,0 +1,7 @@
# contact
e-mail: sejo at posteo dot net
=> ./llave_sejo.asc [pgp key]
fediverse:
=> https://merveilles.town/@chirrolafupa chirrolafupa in merveilles.town

85
src/d-turing.gmo Normal file
View File

@ -0,0 +1,85 @@
# d-turing
bailando los inicios, una máquina de turing
parte de las {las danzas}
# componentes
## participantes
la siguiente descripción depende de tres personas / roles:
* cabeza en cinta
* semáforo de estado
* instructora
la dinámica podría adaptarse fácilmente para dos o una persona(s), pero es más divertido bailarla en grupo.
## materiales
como materiales tangibles se requiere lo siguiente:
* un conjunto de objetos flexibles para crear una fila con ellos: por ejemplo cordones, calcetines, bloques de madera...
* una tabla de reglas en papel o arcilla; al menos en lo que se memoriza
## elementos
una máquina en específico consiste de los siguientes elementos:
* un conjunto finito de símbolos posibles a colocar en la cinta, con un conjunto de movimientos que correspondan uno-a-uno.
* una cinta con dichos símbolos, acomodados en una configuración inicial según sea el caso.
* un conjunto finito de estados posibles, cada uno con un movimiento correspondiente.
* un estado inicial.
* un par de movimientos que indiquen dirección en un eje; por ejemplo izquierda y derecha.
* una tabla de reglas, que responde lo siguiente: dado un símbolo encontrado en la cinta, y un estado actual: ¿por cuál símbolo hay que reemplazarlo, a qué dirección hay que mover la cabeza, y cuál ha de ser el nuevo estado?
# guía
## preparación
es necesario que la cabeza en cinta conozca los símbolos posibles en la cinta, y sus movimientos correspondientes. además, ha de conocer los movimientos de dirección.
el semáforo ha de conocer los estados posibles y sus movimientos correspondientes.
la instructora tiene que conocer todos los movimientos nombrados arriba.
## inicialización
hay que acomodar la cinta de símbolos en una configuración inicial adecuada.
la cabeza en cinta se coloca al lado del primer símbolo.
el semáforo empieza a moverse con el estado inicial.
la instructora se prepara.
## el ciclo
la cabeza en cinta se empieza a mover transmitiendo en qué símbolo se encuentra.
la instructora observa el movimiento del semáforo y el movimiento de la cabeza en cinta, y busca en su tabla de reglas la entrada correspondiente:
¿qué acciones hay que tomar a partir del estado actual y del símbolo leído por la cabeza en cinta?
### con respuesta
si la tabla tiene una respuesta, la instructora empieza a moverse para transmitir las acciones a tomar:
* primero realiza un movimiento de símbolo: la cabeza en cinta lo recibe y lo usa para reemplazar al símbolo en el que se encuentra actualmente.
* cuando concluye la transformación, la instructora realiza un movimiento de dirección: la cabeza en cinta lo recibe y lo sigue para dirigirse al siguiente símbolo que se encuentra en esa dirección.
* finalmente, la instructora realiza un movimiento de estado: el semáforo lo recibe, y lo ha de empezar a realizar como indicación del estado actual.
terminando esas acciones, el ciclo vuelve a comenzar.
### sin respuesta
si la tabla no tiene una respuesta, entonces la máquina se detiene. el cómputo ha terminado.
# algunas máquinas
próximamente
## llega(n) aquí
=> ./las_danzas.gmi {las danzas}

199
src/danza_papier.gmo Normal file
View File

@ -0,0 +1,199 @@
# danza papier
baile colaborativo que ejemplifica una arquitectura computacional común, basada en la wdr papiercomputer
=> https://wiki.xxiivv.com/site/papier.html papier computer
parte de las {las danzas}
# componentes
## participantes
la arquitectura base consta de al menos 6 personas:
* PC: apuntadora del programa (program counter)
* Memoria: quien administra la lista de números correspondiente al programa
* CU: la directora, unidad de control
* Rn: al menos dos registros, R0 y R1
* LU: la que responde preguntas lógicas
## materiales
como materiales tangibles solo se requiere la lista de números que administra la Memoria.
como sea, si el grupo cuenta con suficientes personas, cada uno de esos números puede ser cuerpeado por una persona distinta.
opcionalmente, puede existir una tabla en papel que sirva de recordatorio a la CU de las operaciones a seguir: el microcódigo.
## movimientos
se necesita contar con, y conocer, el siguiente conjunto de movimientos.
### todas las personas
* dígito-movimiento: un movimiento por cada digito en la base elegida (por ejemplo, del 0 al 9 para trabajar en base 10)
* posición: una forma de indicar si un dígito es el primero o el segundo
* finalización: un movimiento que indique que el cómputo ha terminado
será importante conocer cuál es el movimiento siguiente y anterior a cada dígito-movimiento.
### Registros y CU:
* indicación de incremento
* indicación de decremento
### LU y CU:
* pregunta: ¿el contenido del Registro es 0?
* respuestas: sí, no
### PC y CU:
* indicación de incremento sencillo
* indicación de incremento doble
## instrucciones
la computadora cuenta con los 5 siguientes códigos de operación (entre paréntesis su mnemónico)
* 0: Fin del programa (FIN)
* 1: Condicional (CND)
* 2: Salta a (SLT)
* 3: Incrementa (INC)
* 4: Decrementa (DEC)
una instrucción completa consiste de ese código de operación, acompañada de un dígito llamado argumento.
ese argumento tiene un significado distinto según la instrucción:
* FIN: argumento ignorado
* CND: el argumento es el número de Registro al cual preguntarle si es 0: si la respuesta es sí, hay que saltarse una instrucción, y si la respuesta es no, hay que continuar normalmente
* SLT: el argumento es el número de línea a la cual saltar a continuación
* INC: el argumento es el número de Registro que ha de incrementarse
* DEC: el argumento es el número de Registro que ha de decrementarse
# ciclo de instrucción
la máquina estará en el llamado ciclo de instrucción hasta encontrar a una instrucción FIN.
este ciclo consiste de dos partes, fetch (buscar) y execute (ejecutar).
antes de comenzar, hay que realizar una inicialización:
* PC toma el dígito-movimiento correspondiente a 0, y se mueve transmitiéndolo
* Registros toman el dígito-movimiento inicial que se les indique, y se mueven transmitiéndolo
## fetch (buscar)
* todes les Registros se mueven con una amplitud normal, transmitiendo sus dígitos-movimientos
* PC se mueve transmitiendo el dígito-movimiento que tiene almacenado
* Memoria recibe el dígito, y busca en su lista de números al par de dígitos que se encuentran en esa posición.
* Memoria se mueve transmitiendo esos dos dígitos-movimientos, con cuidad de indicar cuál es el primero y cuál es el segundo
* CU recibe esos dos dígitos
* la máquina pasa a la etapa execute
## execute (ejecutar)
* CU identifica al primer dígito recibido como código de operación, y al segundo como argumento
* de acuerdo al código de operación, suceden las siguientes operaciones:
### FIN: Fin del programa (0)
* CU se mueve indicando finalización
* todes se detienen excepto Registros que continúan con sus dígitos-movimientos
les Registros ahora pueden ser inspeccionados para leer los resultados del cómputo.
### CND: Condicional (1)
* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento
* Registros reciben el dígito
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* les demás Registros reducen la amplitud de su propio dígito-movimiento.
* CU se mueve preguntando a LU si el Registro es 0.
* LU recibe la pregunta, y observa al Registro con movimiento amplio
* LU se mueve respondiendo sí o no
* CU recibe la respuesta de LU
* CU se mueve dirigéndose a PC: si la respuesta que recibió de LU fue sí, entonces se mueve indicando un doble incremento; si la respuesta fue no, entonces se mueve indicando un incremento sencillo
* PC recibe la indicación, y pasa al siguiente dígito-movimiento, ya sea una o dos veces según lo recibido.
* la máquina pasa a la etapa fetch
### SLT: Salta a (2)
* CU se mueve dirigéndose a PC, transmitiendo el dígito-movimiento que recibió como argumento
* PC recibe el dígito y lo almacena, reemplazando al dígito-movimiento que estaba realizando antes.
* la máquina pasa a la etapa fetch
### INC: Incrementa (3)
* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento
* Registros reciben el dígito
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* les demás Registros reducen la amplitud de su propio dígito-movimiento.
* CU se mueve dirigiéndose a les Registros, transmitiendo la indicación de incremento
* Registro con el movimiento amplio, pasa al dígito-movimiento siguiente al que estaba realizando (incrementa en 1 al valor que estaba almacenando)
* les demás Registros hacen caso omiso
* CU se mueve dirigéndose a PC, indicando un incremento sencillo
* PC recibe la indicación, y pasa al siguiente dígito-movimiento
* la máquina pasa a la etapa fetch
### DEC: Decrementa (4)
* CU se mueve dirigiéndose a les Registros, transmitiendo el dígito-movimiento que recibió como argumento
* Registros reciben el dígito
* Registro que tiene a ese dígito en su nombre, hace más evidente el dígito-movimiento que estaba realizando
* les demás Registros reducen la amplitud de su propio dígito-movimiento.
* CU se mueve dirigiéndose a les Registros, transmitiendo la indicación de decremento
* Registro con el movimiento amplio, pasa al dígito-movimiento anterior al que estaba realizando (decrementa en 1 al valor que estaba almacenando)
* les demás Registros hacen caso omiso
* CU se mueve dirigéndose a PC, indicando un incremento sencillo
* PC recibe la indicación, y pasa al siguiente dígito-movimiento
* la máquina pasa a la etapa fetch
# ejemplo de programa
este programa suma los dígitos en R0 y R1, colocando el resultado en R0
## lista de números
este es el programa en formato de lista de números para que administre Memoria.
* 0: 2 3
* 1: 4 1
* 2: 3 0
* 3: 1 1
* 4: 2 1
* 5: 0 0
el primer dígito en la lista es el número de línea.
los dos dígitos siguientes son el primer y segundo dígitos de instrucción
## ensamblador
usando las palabras clave (mnemónicos) para indicar los códigos de operación, el programa se vería así:
* 0: SLT 3 (salta a la línea 3)
* 1: DEC 1 (decrementa R1)
* 2: INC 0 (incrementa R0)
* 3: CND 1 (¿R1 es 0? si sí, salta una instrucción, si no, continúa)
* 4: SLT 1 (salta a la línea 1)
* 5: FIN 0 (fin del programa)
(esta forma de programar es a la que se refiere la práctica de {s-camino})
## llega(n) aquí
=> ./las_danzas.gmi {las danzas}

39
src/danzas_compuertas.gmo Normal file
View File

@ -0,0 +1,39 @@
# danzas compuertas
antiguas historias hablaban de computar en conjunto, en comunidad. ¿{las danzas}?
tareas sencillas y divertidas (requeridas de atención y presencia) que combinadas dan paso a complejidad, a olas, a cambios.
# guía
o se está de pie o se está en descanso.
a cada quien se le asigna un rol:
* simplemente decidir en qué posición colocarse
* colocarse siempre en oposición a tal persona
* o ponerse de pie solo cuando ni tal persona ni cual persona están de pie.
(o alguna otra de las {compuertas} lógicas)
la complejidad surge de quién ve a quién, quién depende de quién.
cinco personas para multiplicar dos dígitos binarios... nada mal.
más circuitos posibles, en la {logiteca}
# posibilidades
qué tal un sumador completo, aprovechando la idea de {ciclo de memoria}
aquí un diagrama animado que muestra un par de ciclos de memoria como entrada a un full-adder.
el resultado del full-adder está conectado a otro ciclo de memoria. todos los componentes conformados por personas.
=> https://ipfs.io/ipfs/QmSKnbCUGj3FR5hRG5UAgfXxjyp7aTQoRCeJ9G4MENxNNG/20190718-sumadanza_600.gif suma danza (gif, 187KB )
## llega(n) aquí
=> ./las_danzas.gmi {las danzas}
=> ./compuertas.gmi {compuertas}
=> ./logiteca.gmi {logiteca}

78
src/danzasistemas-tag.gmo Normal file
View File

@ -0,0 +1,78 @@
# danzasistemas-tag
una compudanza basada en máquina abstracta (tag systems, o bien, máquina de post)
=> ./las_danzas.gmi {las danzas}
# descripción
las danzasistemas-tag consisten en "batallas" de baile en las que alternamos recibiendo y respondiendo secuencias de movimiento.
las secuencias que respondemos son producto de procesar elementos de la secuencia que recibimos.
# indicaciones
necesitamos los siguientes elementos:
* A: alfabeto finito de símbolos/movimientos identificables y replicables
* P: las reglas de producción: qué símbolos/movimientos hay que agregar al final de la nueva secuencia, de acuerdo al primer símbolo/movimiento de la secuencia recibida.
* m: número de eliminación: cuántos símbolos/movimientos hay que eliminar del inicio de la secuencia recibida.
al recibir una secuencia de movimiento, hemos de poner atención y realizar lo siguiente para construir nuestra respuesta:
* notar el primer símbolo/movimiento, que nos indica qué regla de producción seguir al final de la secuencia.
* descartar la cantidad de símbolos/movimientos del inicio de la secuencia de acuerdo al número de eliminación. (esto incluye al primer símbolo/movimiento).
* memorizar y replicar la secuencia recibida a partir de ese punto, en orden y hasta el final.
* agregar el o los símbolos/movimientos al final de la secuencia, de acuerdo a la regla de producción.
según la danzasistema-tag, la dinámica de respuestas continúa hasta llegar al símbolo/movimiento que indique detenerse, o hasta que la secuencia de movimiento quede vacía.
# ejemplo
cómputo de secuencias de collatz, tomado de wikipedia
=> https://en.wikipedia.org/wiki/Tag_system#Example:_Computation_of_Collatz_sequences Tag system - Example: Computation of Collatz sequences (web)
los elementos de nuestra danzasistema-tag serían los siguientes:
## A: alfabeto finito de símbolos/movimientos
tres símbolos/movimientos: a, b, c
## P: reglas de producción
si primer símbolo/movimiento es 'a', agrega 'bc' al final.
si primer símbolo/movimiento es 'b', agrega 'a' al final.
si primer símbolo/movimiento es 'c', agrega 'aaa' al final.
nota cómo cada regla de producción agrega una cantidad distinta de símbolos/movimientos al final.
## m: número de eliminación
en este caso, siempre descartaremos 2 símbolos/movimientos del inicio de la secuencia.
## desarrollo
partiendo de una secuencia inicial 'aaa'...
```
inicio: aaa
respuesta: abc
respuesta: cbc
respuesta: caaa
respuesta: aaaaa
respuesta: aaabc
respuesta: abcbc
respuesta: cbcbc
etc...
```
siempre se descartan los 2 símbolos/movimientos del inicio, pero la cantidad de símbolos/movimientos que se agregan al final cambian de acuerdo a la regla de producción.
esta dinámica de respuestas a partir de esa secuencia inicial, eventualmente termina descartando a la secuencia completa.
## llega(n) aquí
=> ./las_danzas.gmi {las danzas}

57
src/después_ahora.gmo Normal file
View File

@ -0,0 +1,57 @@
# después ahora
textos hacia una práctica post-civilización.
# La invitación
Primero que nada, te invito, nos invito, a estar presentes.
Respirar profundo, y de ser posible, mirar por alguna ventana. Notar el espacio de posibilidades que nos presenta lo que llamamos cielo.
Espero que no fuera hace mucho la vez más reciente que le habías visto.
Ahora bien, en este texto, partimos de la noción de que algo grande se está terminando. No solo grande, sino enorme; tal vez inabarcable, tal vez inconcebible.
Partimos de la noción de que la civilización se está terminando.
O de que ya se terminó, según desde dónde le veamos.
Partimos de que vale la pena permitirse sentirlo y expresarlo. La intención es imaginar, encontrar, crear cómo queremos vivir mientras lo aceptamos.
Por un lado siento las ganas de argumentarlo, de convencerte. Pero por otro lado sé que ya lo sabes: no se ve salida al desastre exponencial que se ha (¿hemos? ¿han?) desencadenado.
Crecer por crecer y por siempre, dejando de lado los cuidados: probablemente no fue la mejor idea, forma de vivir impuesta. Hay y hubo quien se opuso, claro; pero ahí no se permiten alternativas.
La duda es si esperamos y dejamos que la civilización como la conocemos, eso que se está terminando, caiga, colapse por su propio peso. A mí, esa espera me parece muy riesgosa. ¿Qué tal si al dejarle continuar, antes cae, colapsa la biósfera y su capacidad para mantener vida?
¿Cuál de los dos finales nos resultará peor, el de la civilización o el de la vida en la Tierra? Los páneles solares y autos eléctricos no nos llevan a una tercera opción, realmente.
¿Y entonces? ¿La decisión es retirarse? ¿La decisión es tirarla? ¿Qué tal vivir como si ya no existiera?
Cualquier opción me suena incómoda, pero llena de energía vital.
Personalmente, prefiero dejármelo sentir. No me va eso de hacerme creer que no está pasando nada, de hacer como si todo fuera a seguir normal, bien, "sin problema".
Ya no me creo el cuento del progreso, de las soluciones tecnocéntricas.
Vivir como si la civilización ya no existiera es lo que mejor me suena. Requiere creatividad, curiosidad, disposición, compasión y paciencia. Es alcanzable. No hay una fórmula específica, homogénea.
Es plantar semillas de lo que pueda venir después: puede que no germinen, ¿pero realmente me veo haciendo otra cosa?
Me queda claro que no es fácil. Además, no tengo mucha idea de cómo.
Estas letras llegan a ti con miras a que exploremos, sintamos, conectemos, practiquemos.
Por el momento usamos internet, después ya veremos. Si los cables seguirán plantados, ¿qué decidiremos hacer con ellos?
---
Te invito a respirar de nuevo. A moverte con cómo te sientes ahora.
Te invito a acompañarnos en esta búsqueda.
Está bien si todavía no es el momento. Ya sabes dónde me encuentro.
## incoming links
=> ./collapse.gmi {collapse}

100
src/estilo.css Normal file
View File

@ -0,0 +1,100 @@
/* links en el sitio */
a[href^="./"]{
text-decoration:none;
}
/* links externos */
a[rel=external]:after{
/* content:"↝";*/
content: "↗";
}
a{
color: #575;
}
a:hover{
background-color: #575;
color: #fff;
border-radius:3px;
}
a:visited{
color: #552;
}
a:visited:hover{
background-color: #552;
color: #fff;
border-radius:3px;
}
body{
color: #010;
max-width:40em;
margin:0 auto;
font-size:18px;
padding: 1em;
}
nav,footer,section{
/* border-top: 2px solid;*/
}
footer{
font-size: x-small;
text-align: center;
}
pre{
background-color: #fee;
color: #433;
padding:1em;
border-radius:5px;
overflow-x: auto;
}
main h1{
padding-top: 2.0em;
font-size: 30px;
}
main h2{
font-size: 25px;
/* border-top: 1px dashed;*/
padding-top: 1em;
margin-left:0.3em;
}
main h3{
font-size: 18px;
padding-top: 1em;
margin-left:1em;
}
gallery{
display:flex;
flex-direction:row;
flex-wrap:wrap;
justify-content:space-evenly;
align-content:center;
}
img{
margin:10px;
border-radius:5px;
}
nav{
font-size:smaller;
}
nav li{
list-style-type:square;
}
table,th,td{
border-style:inset;
border-width: 1px;
}
table{
margin:10px;
overflow-x: auto;
}
#count{ /* para tiempo */
word-wrap:break-word;
font-size:9px;
font-family:monospace;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

7
src/index.gmo Normal file
View File

@ -0,0 +1,7 @@
# compudanzas
human-powered explorations of emergent complexity
=> ./about.gmi {about}
=> ./coloring_computers.gmi {coloring computers}
=> ./las_danzas.gmi {las danzas}

View File

@ -0,0 +1,46 @@
# la consagración de la computadora
a dance that
becomes computer,
machine,
organism...
# archive
=> ./img/foto_laconsagracion-riley-11.gif foto: dos personas en el suelo manipulando piezas de madera
=> ./img/foto_laconsagracion-riley-14.gif foto: una persona le muestra a otra un símbolo en una pieza de cartón
danza que se convierte en
computadora,
máquina,
organismo...
=> ./img/foto_laconsagracion-riley-19.gif foto: tres personas en el suelo, manipulando piezas de cartón y rodeadas de piezas de madera
=> ./img/foto_laconsagracion-riley-3.gif foto: dos personas cerca del suelo, al lado una fila de símbolos conformados con piezas de madera
la consagración de la computadora es una ceremonia, colaboración y celebración entre elementos humanos y no-humanos: una máquina computacional lenta, sudorosa, orgánica, ineficiente, bailada, turing completa; realizando un proceso de vida potencialmente infinito...
=> ./img/foto_laconsagracion-riley-4.gif foto: una persona rueda por el suelo observando una pieza de cartón, al lado de la fila de símbolos de piezas de madera
the rite of computing is a ceremony, a collaboration and celebration between human and non-human elements: a slow, sweaty, organic, locally-grown, inefficient, danced, turing-complete, computational machine; performing a potentially endless process of life.
=> ./img/foto_laconsagracion-riley-6.gif foto: una persona en el suelo, cercana a la fila de símbolos de madera, en contraluz
photos: Riley Stenehjem
featuring: August Luhrs, Isa Vento, sejo
adapted page from the original at chsnec
=> https://ipfs.io/ipfs/QmYYqFXowEuak9NVNMHexrwZQkEnfH4J6weSPpv3kjFP94/mub/laconsagracion.html chsnec: la consagración de la computadora
premiere invite:
=> https://ipfs.io/ipfs/QmYYqFXowEuak9NVNMHexrwZQkEnfH4J6weSPpv3kjFP94/mub/show.html la consagración de la computadora (the rite of computing) - world premiere!
# and more
an implementation of the máquina universal bailable {mub}
dance accompanied by {the rite of computing}
## llega(n) aquí
=> ./the_rite_of_computing.gmi {the rite of computing}

54
src/las_danzas.gmo Normal file
View File

@ -0,0 +1,54 @@
# las danzas
colección de actividades y planteamientos bailables
# ciclo de memoria
un dispositivo-danza que almacena información binaria, con capacidad de ser escrita y leída.
nos volvemos un registro de corrimiento (shift register) síncrono para almacenar de manera activa una secuencia de símbolos.
=> ./ciclo_de_memoria.gmi {ciclo de memoria}
# par y danza
estrategia básica para detectar posibles errores de transmisión / recepción de una secuencia binaria.
=> ./par_y_danza.gmi {par y danza}
# danzas compuertas
en la que nos convertimos en red de compuertas lógicas para resolver en conjunto operaciones aritméticas o lógicas.
comportamiento asíncrono, que podemos sincronizar para procesos más complejos.
=> ./danzas_compuertas.gmi {danzas compuertas}
# reglas de wolfram
danzas en las que nuestro nuevo estado individual depende de nuestro estado propio y del de dos personas más.
# danzasistemas-tag
“batallas” en las que respondemos procesando elementos de la secuencia anterior.
=> ./danzasistemas-tag.gmi {danzasistemas-tag}
# d-turing
en donde bailamos con y a partir de una fila / tira / cinta de objetos / símbolos y una tabla específica de estados.
=> ./d-turing.gmi {d-turing}
# máquina universal bailable
en donde bailamos con y a partir de una fila / tira / cinta de objetos y una tabla específica de estados, en un acomodo tal que nos permite simularnos bailando con y a partir de una fila / tira / cinta de objetos y cualquier tabla específica de estados
=> ./mub.gmi {mub}
# danza papier
en donde nuestras acciones toman la forma de las operaciones de una computadora con una arquitectura similar a la de las que conocemos.
=> ./danza_papier.gmi {danza papier}

5
src/license.gmo Normal file
View File

@ -0,0 +1,5 @@
# license
unless otherwise noted, the compudanzas materials are shared under the
=> https://wiki.p2pfoundation.net/Peer_Production_License peer production license

65
src/llave_sejo.asc Normal file
View File

@ -0,0 +1,65 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
39c=
=I3+J
-----END PGP PUBLIC KEY BLOCK-----

19
src/log.gmo Normal file
View File

@ -0,0 +1,19 @@
# the log
what's happening with compudanzas
## 12021-06-14 the beginning or not
we started building this site, from previous blocks of executable and non-executable texts.
there's an upcoming talk in the weekend.
for a while it was seen as the closure of this project, and a recap of its history.
now it is seen as a new beginning.
=> ./talks_and_workshops.gmi {talks and workshops}
## incoming links
=> ./about.gmi {about}

288
src/logiteca.gmo Normal file
View File

@ -0,0 +1,288 @@
# logiteca
compendio de circuitos lógicos que pueden implementarse en las {danzas compuertas}.
material de referencia para las {las danzas}
# acerca de
este es un compendio de circuitos lógicos que pueden implementarse en las {danzas compuertas}.
están descritos en *verilog*, un lenguaje descriptor de hardware. esto con la idea de estandarizarlos, de facilitar simularlos e implementarlos en otros materiales, y de indicar su cualidad de *red abstracta*.
utilizamos el lenguaje a nivel de {compuertas} lógicas solamente: cada compuerta se expresa como una función (`and()`, `not()`, `or()`, `nor()`, `nand()`, etc) donde el primer argumento es el nombre de la *salida* de la compuerta, y el o los otros argumentos son los nombres de las *entradas*.
el número de participantes asignado por circuito está contado como el *número de entradas* más el *número de compuertas*, donde alguna(s) de ella(s) incluyen las compuertas cuyas salidas son también la(s) del circuito. si se tienen más participantes, se pueden agregar el *número de salidas*: persona(s) que copien el resultado de la compuerta correspondiente.
# multiplicador de 1 bit
circuito que multiplica a dos números de 1 bit y da el resultado en 1 bit.
## multiplicador de 1 bit con compuertas habituales (3 o 4 participantes)
```
// multiplicador construido con compuertas habituales
// entradas (2): a,b
// salidas (1): r (resultado)
// compuertas (1): 1 de 2 entradas
module multiplicador( a, b, r);
input wire a, b;
output wire r;
and C1(r, a, b);
endmodule
```
## multiplicador de 1 bit con nor (5 o 6 participantes)
```
// multiplicador construido con nor's
// entradas (2): a,b
// salidas (1): r (resultado)
// compuertas (3): 2 de 1 y 1 de 2 entradas
module multiplicador( a, b, r);
input wire a, b;
output wire r;
wire p1,p2;
// negadas
nor C1(p1, a);
nor C2(p2, b);
// resultado
nor C3(r, p1, p2);
endmodule
```
# contadores
circuitos que incrementan 1 al número binario colocado en la entrada, con el mismo número de bits a la entrada que a la salida.
si la salida se "conecta" a la entrada, entonces con cada paso se obtiene el
número siguiente en la secuencia, es decir se "cuenta".
al llegar al último número, se regresa a 0.
## contador de 2 bits con compuertas habituales (4 o 6 participantes)
```
// contador de 2 bits con compuertas habituales
// entradas (2): a, b
// salidas (2): x, y
// compuertas (2): 1 de 1 y 1 de 2 entradas
module contador(a, b, x, y);
input wire a,b;
output wire x,y;
not C1(y, b);
xor C2(x, a,b);
endmodule
```
## contador de 2 bits con nor (7 o 9 participantes)
```
// contador de 2 bits con nor
// entradas (2): a, b
// salidas (2): x, y
// compuertas (5): 2 de 1 y 3 de 2 entradas
module contador(a, b, x, y);
input wire a,b;
output wire x,y;
wire p1, p2, p3;
// negaciones
nor C1(y, b);
nor C2(p1, a);
// para x
nor C3(p2, a,b);
nor C4(p3, y,p1);
nor C5(x, p2,p3);
endmodule
```
## contador de 3 bits con nor (13 o 16 participantes)
```
// contador de 3 bits con compuertas habituales
// entradas (3): a, b, c
// salidas (3): x, y, z
// compuertas (10): 3 de 1, 4 de 2, 3 de 3 entradas
module contador(a, b, c, x, y, z);
input wire a,b,c;
output wire x,y,z;
wire p1, p2, p3, p4, p5, p6, p7;
// negaciones
nor C1(p1, a);
nor C2(p2, b);
nor C3(z, c);
// para y
nor C4(p3, b,c);
nor C5(p4, p2,z);
nor C6(y, p3,p4);
// para x
nor C7(p5, a,b);
nor C8(p6, p1, p2, z);
nor C9(p7, a, p2, c);
nor C10(x, p5, p6, p7);
endmodule
```
# half adder
circuito que suma dos bits y da el resultado en dos bits (resultado y *carry*)
## half adder con compuertas habituales (4 o 6 participantes)
```
// half adder construido con compuertas habituales
// entradas (2): a,b
// salidas (2): r, c (resultado, carry)
// compuertas (2): 2 de 2 entradas
module halfadder( a, b, r, c);
input wire a, b;
output wire r,c;
// carry
and C1(c, a, b);
// resultado
xor C2(r, a, b);
endmodule
```
## half adder usando nor (7 o 9 participantes)
```
// half adder construido usando nor's
// entradas (2): a,b
// salidas (2): r, c (resultado, carry)
// compuertas (5): 2 de 1 y 3 de 2 entradas
module halfadder( a, b, r, c);
input wire a, b;
output wire r,c;
wire p1,p2,p3;
// negadas
nor C1(p1, a);
nor C2(p2, b);
// carry
nor C3(c, p1, p2);
// resultado
nor C4(p3, a, b);
nor C5(r, c, p3);
endmodule
```
# full adder
circuito que suma tres bits y da el resultado en dos bits (resultado y *carry*).
## full adder con compuertas habituales (14 o 16 participantes)
```
// full adder construido con compuertas habituales
// entradas (3): a, b, c
// salidas (2): carry, r (resultado)
// compuertas (11): 2 de 1 y 9 de 2 entradas
module fulladder( a, b, c, r, carry);
input wire a, b, c;
output wire r, carry;
wire p1, p2, p3, p4, p5, p6, p7, p8, p9;
// negadas
not C1(p1, a);
not C2(p3, p2);
// diferencias b,c
xor C3(p2, b, c);
or C4(p4, b, c);
and C5(p5, b, c);
// armado de resultado
and C6(p6, p1, p2);
and C7(p7, a, p3);
or C8(r, p6, p7);
// armado de carry
and C9(p8, p1, p5);
and C10(p9, a, p4);
or C11(carry, p8, p9);
endmodule
```
## full adder usando nor (15 o 17 participantes)
```
// full adder construido usando nor's
// entradas (3): a, b, c
// salidas (2): carry, r (resultado)
// compuertas (12): 3 de 1, 3 de 2, 4 de 3 y 1 de 4 entradas
module fulladder( a, b, c, r, carry);
input wire a, b, c;
output wire r, carry;
wire p1, p2, p3, p4, p5, p6, p7, p8, p9, p10;
// negadas
nor C1(p1, a);
nor C2(p2, b);
nor C3(p3, c);
// pa'l carry
nor C4(p4, a, b);
nor C5(p5, a, c);
nor C6(p6, b, c);
// pa resultado
nor C7(p7, a, b , c);
nor C8(p8, p1, b, p3);
nor C9(p9, a, p2, p3);
nor C10(p10, p1, p2, c);
// salidas
nor C11(carry, p4, p5, p6);
nor C12(r, p7, p8, p9, p10);
endmodule
```
## llegan aquí
=> ./danzas_compuertas.gmi {danzas compuertas}
=> ./coloring_computers.gmi {coloring computers}

20
src/mub.gmo Normal file
View File

@ -0,0 +1,20 @@
# máquina universal bailable
una de las {las danzas} en donde bailamos con y a partir de una fila / tira / cinta de objetos y una tabla específica de estados, en un acomodo tal que nos permite simularnos bailando con y a partir de una fila / tira / cinta de objetos y cualquier tabla específica de estados.
implementación especial de una máquina de turing {d-turing}, con la capacidad de simular, emular, ser, cualquier otra máquina de turing.
# la máquina
próximamente
# en escena
una versión de la máquina universal bailable se presentó como acto escénico
=> ./la_consagración.gmi {la consagración de la computadora}
## llega(n) aquí
=> ./las_danzas.gmi {las danzas}
=> ./la_consagración_de_la_computadora.gmi {la consagración de la computadora}

106
src/par_y_danza.gmo Normal file
View File

@ -0,0 +1,106 @@
# par y danza
estrategia básica para detectar posibles errores de transmisión / recepción de una secuencia binaria, en modalidad {las danzas}.
implementamos el cómputo y detección de la llamada paridad: dada una secuencia de dos tipos de símbolos, ¿la cantidad de símbolos de uno de esos tipos, es par o impar?
# componentes
usaremos el concepto de estados y tiempos discretos.
## participantes
necesitamos al menos dos personas:
* transmisora de secuencia
* calculadora de paridad
## movimientos
necesitamos un alfabeto de dos movimientos:
* un movimiento "alto"
* un movimiento "bajo"
y un conteo de tiempos discretos.
cada uno de esos tiempos que contiene a un movimiento, lo podemos considerar un "bit": unidad mínima de información.
para transmitir información más compleja, necesitamos varios "bits": una secuencia de tiempos con uno de estos dos movimientos.
## estados y transiciones
en cada unidad de tiempo, estamos ya sea en el estado que corresponde al movimiento alto, o en el que corresponde al movimiento bajo.
inicialmente estamos en el movimiento bajo.
tenemos dos tipos de transiciones:
* continúa: sigue en el mismo estado
* invierte: cambia al otro estado
# guía
## cálculo de paridad
de acuerdo al mensaje binario a transmitir, en cada tiempo la persona transmisora envía uno de los dos movimientos posibles.
cuando la cantidad de movimientos que envía en una transmisión son 8, estará enviando un "byte".
la persona calculadora inicialmente está en el movimiento bajo.
en cada tiempo de transmisión, la persona calculadora ha de actuar de la siguiente forma:
* si el movimiento transmitido es bajo, ella ha de continuar su movimiento.
* si el movimiento transmitido es alto, ella ha de invertir su movimiento.
al concluir la transmisión, la persona calculadora habrá terminado:
* en el movimiento alto si la cantidad de movimientos altos transmitidos fue impar.
* en el movimiento bajo si la cantidad de movimientos altos transmitidos fue par
comprobemos que sí sea así, con secuencias de diferente longitud y paridad.
## detección de error con paridad
### conceptos
el estado en el que terminó la persona calculadora puede llamarse el bit de paridad.
un aspecto interesante y no obvio de este sistema, es que si este bit de paridad se agrega a la secuencia original para formar una nueva secuencia completa, entonces la cantidad total de movimientos altos siempre será un número par:
* cuando la cantidad era impar (por ejemplo, 3), el bit de paridad es alto, y al sumarse da un total par (por ejemplo, 4)
* cuando la cantidad era par (por ejemplo, 2), el bit de paridad es bajo y no se suma al total, que queda par (por ejemplo, 2)
### actividad
después de calcular localmente la paridad de la secuencia a transmitir, podemos pasar a transmitir a mayor distancia la nueva secuencia con el bit de paridad al final:
en cada tiempo, la persona transmisora envía el movimiento correspondiente para transmitir la secuencia completa.
la persona calculadora inicialmente está en el movimiento bajo.
en cada tiempo de transmisión/recepción, la persona calculadora ha de actuar de la siguiente forma:
* si el movimiento recibido es bajo, ella ha de continuar su movimiento.
* si el movimiento recibido es alto, ella ha de invertir su movimiento.
al terminar la transmisión de la secuencia completa, revisamos el estado de la persona calculadora:
* si se encuentra en movimiento alto (paridad impar), hubo algún error en la comunicación
* si se encuentra en movimiento bajo (paridad par), probablemente no hubo error en la comunicación
probemos con secuencias de diferente longitud, a diferentes velocidades, y también a diferentes distancias.
¿llega a suceder que detectamos un error?
¿qué pasa cuando hay dos errores en la comunicación? ¿es posible que el sistema no lo detecte?
## llega aquí:
=> ./las_danzas.gmi {las danzas}

3
src/poetry.gmo Normal file
View File

@ -0,0 +1,3 @@
# poetry
=> ./the_rite_of_computing.gmi {the rite of computing}

View File

@ -0,0 +1,28 @@
# talks and workshops
public appearances of the project.
# upcoming
## june 12021
compudanzas talk and {coloring computers} workshop in processing community day quito, june 19th
=> http://pcdquito.com/ pcd quito 2021
compudanzas workshop in cuna school
=> https://www.cunamex.com/compudanzascursoonline compudanzas - cuna
# past
## 12019
{coloring computers} workshop in the processing community day nyc
=> https://processing.nyc/2019/#workshops processing community day nyc 2019
## incoming links
=> ./log.gmi {log}

View File

@ -0,0 +1,291 @@
# the rite of computing
we saw the tipping points being crossed, and yet the same behavior
destruction was all around, even in the use of our tools of creation
what could we do? how could we engage? how could we disengage?
we thought of reinventing computers
homegrown, homemade…
a game, a party, a dance
maybe in that way we would understand?
maybe in that way we would know if we want to keep them?
the following are some of our notes, thoughts, conversations, actions…
# r
i wonder what happens when you remove efficiency, speed
the machine doesnt seem to complain
it comes with a great cost
some beings at the service of others, is that the natural order?
you thought and asked, until you realized you put yourself on fire
the higher one gets, and the more one on others depends…
how bad you think the fall will be?
how long will the internet live once the humans are gone?
# u
the person is given a ruleset
a table
current configuration
encountered symbol
what to put instead
where to move
next configuration
the floor is prepared
a row of symbols
mosaic of colors
in a spiral
around the fire
the person enters the space
drums start playing
the person starts moving
repeating
a configuration becomes a state of being
a sequence of movements
the mosaics are replaced
(make sure you dont lose track)
transitions from a state to another
the spiral becomes another
we expect the process
we expect the result
after hours of a body
becoming a body
emulating a body
who moves and sweats
losing (but not really) breath
the iteration is complete
# w
can we talk about rewilding computers?
were they wild to start with?
how wild or not is a division
of time and space in slots
ever-decreasing measures
changes of state?
the revolution, the transcription, life
no boundaries, really, but in our self
and that one, really, also emerges
maybe you mean getting rid of the rigid cover
curving the interconnections
the differences are fluid
with or without extremes?
i lost you
destroying the shiny, embracing the earth
a cracked screen carried away by the sea?
that would probably kill us
with emergence we understand we cant understand
is it a useful model?
model? useful? it?
number of processors versus grains of sand?
and if we become just a probe?
i dissolve, the computer
the transformation carries on
# n
think about the apparently unnatural…
creating vacuum…
manipulating beams of charge and light…
wiring thousands, cooling their surrounding air…
later inserting billions in a little block of sand
why not just chill and enjoy the beach?
there was a war
and then the promise of productivity
why not just chill and enjoy the beach?
# t
a tape in the form of a series of objects in some kind of slots
each object a symbol
maybe pieces of cloth in a clothesline
or pieces of paper on the floor
soft and flexible
an object signals the current position of the head
maybe a stool to reach above
or a long stick that rests and points
a group of people is engaged
each one of them with a different command:
if you encounter the short object in the tape
replace it with the thin
move the head to the left
and get the long-haired person to continue
different combinations
fragments of behavior
nobody knows what is really happening
and yet, the computation occurs
# i
can you tell me again about your project?
project, ceremony, dance, choreography… computer!
i wonder how can someone end up there
its just about imagining alternatives, trying to reinvent…
is this a solution to a problem? what if everybody does as you?
they originated with war in body and mind
and they have very good uses despite that; they saved me!
what about realizing they are made through destruction?
it might be practical: destroying the old and the weak
and we will drown by powering them
i hope we can upload our consciousness by then?
you might emulate yourself in rocks
# c
a group of people arrives to the floor that suddenly becomes a stage
bare feet, skin in the air with no layers in between
they move without the code that you would expect
(but with a different set of rules, what do they encode?)
eye contact, spatial awareness, flow
a self-generated oscillation
one of them observes other two
based on the three states, this one responds
repeat the same for each body
a cell made of cells
the pulse that reminds of a distant past
sweat that would short-circuit your board
yet information travels, proceeds, evolves
unpredictable behavior except by simulation
the bodies stomp, they clap, they sing
becoming another
above? (where?) below? (where?)
its there!
no need to channel the earth
# e
i like computers
why? they make more sense?
maybe. complex but fabricated with heavy logic constraints…
do you know how they work?
thats the question, do they work or do they just exist…
following a hardwired behavior, filtering out noise
only a fixed amount of values in space and time
and yet embedded in an apparently continuous world
where to put them in the organic-inorganic spectrum
extracting minerals, sculpting them…
marks are left, one at a time
… modulating the electromagnetic spectrum all around
wait! why are you talking about electricity, semiconductors?
do you want to develop further?
id prefer to do a backwards somersault and take a non-violent path
# x
the idea is that you, as an individual, follow a simple set of rules
these rules make me depend to some extent on other individuals
your state of being based on my state of being
we feel a pulse arriving, and we change
how predictable you would think a system like that is?
i wouldnt expect it to be completely chaotic…
complexity… how can you think about it if it was not for it?
each component can be part of the whole without knowing about it
“it” being the whole or the component?
or any of them?
then can only one of these pieces bring the whole system down?
the state of that answer depends on the state of your purpose
i guess an undirected, chaotic behavior will always be alright
the order, the function, the control are the ones that you can break
why would we want a math-machine that doesnt do the math right?
theres the poetry!
but what about the rigor? the experience of following constraints?
you think that is important?
maybe its part of my identity
we dont have to do right math right
less about me, more about the connections?
in any case, it would be arbitrary and not too easy to get
# d
im having trouble putting the finger in the point
is your self-protective awareness in action?
maybe. who will want to question electronic computers.
or productive computers, for that matter.
# s
i dont know whats a computer
dont worry, neither do i
but you see it…
i see it and i marvel
it is only a machine
i see how arithmetic can be done mechanically
no need to learn, no need to understand?
isnt that amazing? doing something without knowing you are doing it
small components contributing with small actions to a whole that no one knows?
only the designer?
and what if there is no one?
what if they also emerged as a whole?
and what kind of whole emerges from us?
or where does that whole exist?
if simple models acquire complexity so quickly…
yes, say hi to the chaos of nature
# p
has lightning been captured twice, so far?
fire, electricity, what are they?
probably its the same here with computing
one thing is to describe them working…
visualizations, metaphors… leading to understanding what i cant see?
but you dont have to, to use them
how convenient!
in many ways, knowing about computer architecture is completely useless
digital circuit design as some kind of poetry?
unless you are in one of the few companies, of course
forcing the rocks until they cant hold it anymore?
the magic doesnt disappear even if you know how to combine transistors
magic? the mystery of computation?
how can dead matter appear to be alive?
and how can it replicate and build new versions of itself?
# l
a group of people walk in the space
you see one person:
if they rise you fall
if they fall you rise
respond immediately
(as fast as your body can)
they in turn see two,
not including you
they rise only if both fall
otherwise they fall
some others see them
some others see you
every once and then
a new change occurs in the beginning
people rise
people fall
the wave propagates
there is an end
no more people rise
no more people fall
and there is a result
they take note
someone in the audience remembers
and then,
after a pause
the beginning feeds from the end
a change again
the machine is counting
originally published in adjacent, issue 5, as lengua partida (2019)
CC BY-SA 4.0
=> https://itp.nyu.edu/adjacent/issue-5/the-rite-of-computing/ the rite of computing (la consagración de la computadora) - ADJACENT Issue 5 (web)
text accompanied by {la consagración de la computadora}
## incoming links
=> ./poetry.gmi {poetry}
=> ./la_consagración_de_la_computadora.gmi {la consagración de la computadora}