initial migration
|
@ -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 " — " 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("<","\\<",$0)
|
||||
gsub(">","\\>",$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> — "
|
||||
print "<a href='./license.html'>{license}</a></p>"
|
||||
print "</footer>"
|
||||
print "</body>"
|
||||
print "</html>"
|
||||
}
|
|
@ -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!"
|
|
@ -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"}"
|
||||
}
|
|
@ -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}"
|
||||
}
|
|
@ -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}
|
|
@ -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}
|
|
@ -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 we’re 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}
|
|
@ -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}
|
|
@ -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}
|
|
@ -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
|
|
@ -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}
|
|
@ -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}
|
|
@ -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}
|
|
@ -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}
|
|
@ -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}
|
|
@ -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;
|
||||
}
|
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 9.9 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 9.4 KiB |
|
@ -0,0 +1,7 @@
|
|||
# compudanzas
|
||||
|
||||
human-powered explorations of emergent complexity
|
||||
|
||||
=> ./about.gmi {about}
|
||||
=> ./coloring_computers.gmi {coloring computers}
|
||||
=> ./las_danzas.gmi {las danzas}
|
|
@ -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}
|
|
@ -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}
|
|
@ -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
|
|
@ -0,0 +1,65 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
39c=
|
||||
=I3+J
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -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}
|
|
@ -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}
|
|
@ -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}
|
|
@ -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}
|
|
@ -0,0 +1,3 @@
|
|||
# poetry
|
||||
|
||||
=> ./the_rite_of_computing.gmi {the rite of computing}
|
|
@ -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}
|
|
@ -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 doesn’t 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 don’t 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 can’t 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
|
||||
– it’s 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?)
|
||||
it’s 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?
|
||||
– that’s 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?
|
||||
– i’d 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 wouldn’t 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 doesn’t do the math right?
|
||||
– there’s the poetry!
|
||||
– but what about the rigor? the experience of following constraints?
|
||||
– you think that is important?
|
||||
– maybe it’s part of my identity
|
||||
– we don’t 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
|
||||
|
||||
– i’m 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 don’t know what’s a computer
|
||||
– don’t 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?
|
||||
– isn’t 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 it’s the same here with computing
|
||||
– one thing is to describe them working…
|
||||
– visualizations, metaphors… leading to understanding what i can’t see?
|
||||
– but you don’t 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 can’t hold it anymore?
|
||||
– the magic doesn’t 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}
|