En memoria de las víctimas del apartheid

Estándar

Cuando puedo intento leer el código fuente de algunos programas para aprender y ser mejor programador, lo cual es posible gracias a que los programas que trato son software libre. Buscando aleatoriamente me he topado con C-Graph.

transformsGNU C-Graph es un programa para ayudar a visualizar la convolución de funciones (o señales). Como presentación, decir que la convolución es una operación matemática cuya definición formal, digamos, no es muy intuitiva, al menos para mucha gente, y que necesita ser revisitada muchas veces para comprender su significado.

Pues si ejecutas el programa con el parámetro dedicate, puedes leer la versión original de la siguiente dedicatoria. El poema del final usa metáforas relacionadas con el argot del tratamiento de señales. No prometo que esta sea una traducción muy fiel.

GNU C-Graph está dedicado a las víctimas del apartheid, dondequiera que se encuentren, y está dedicado a la libertad y memoria del abogado haitiano y portavoz de los derechos humanos Eliezer Regnier que murió el 27 de Febrero de 2010 al luchar por la justicia. Que su alma descanse en paz.

para que TODAS las VÍCTIMAS de la LUCHA del APARTHEID sean LIBRES y para REGNIER
 
Me envías discretas señales a través de la habitación,
Yo respondo por impulso, reflejando el muestreo de eventos
Que son una dicotomía desde el día que dejaste el vientre de tu madre
Multiplicada en frecuencia, integrada en el tiempo, una ponderada confluencia
De desplazantes deslizantes trenes de pensamiento, mensajes alternativos bajo transformación
Contraprunto, dualidad, involución, contradistinción sin confusión,
Independencia en la sumación. Silencio -esta es una conversación convolucionada.

— Adrienne Gaye Thompson

convolutions

Más conmocionador aún, si lees el código fuente, puedes encontrar dos subrutinas que están escritas en su honor. Si no estás acostumbrado a leer código fuente, nota que en el siguiente código, para hacer referencia a los argumentos que se pasan a la subrutina, se ha decidido emplear los nombres law (ley) y justice (justicia). También se ha llamado a una variable rights (derechos) y una línea del código haiti. El nombre de los argumentos y las variables pueden ser cualesquiera que elija el programador, pero son muy importantes, ya que recuerdan cuál es el significado del valor que guardan. Ocasionalmente, aunque desaconsejable, uno puede hacer chistes con los nombres que se dieron a los argumentos, variables, etc.., ya que es posible leer el código reinterpretándolo como lo que significaría en el lenguaje convencional humano en lugar de con el lenguaje de programación usado, o un punto intermedio.  En este caso, no se ha hecho por diversión, sino en forma de homenaje. No haré una interpretación del código.


subroutine regnier(law,justice)
!==============================

   ! In memory of Eliezer Regnier

    character(len=*) :: law
    integer :: rights
    real, optional :: justice

    haiti: do rights=0,1
       write(*, "(a)", advance='no') 'C-Graph:>> '
       read(*,'(a)') law
       if(present(justice)) then
          read(law, *, iostat=badinput) justice
          if(badinput /=0) then
            if(rights==1) then
                justice=1
             else
                write(*,'(/,a)') "That was not a number. Try again!"
             end if
          else
             exit haiti
          end if
       else
          exit haiti
       end if
    end do haiti
  end subroutine regnier

integer function eliezer (s)
!===========================
! In memory of Eliezer Regnier
! Define scaling protocol.
character (*) :: s
character(*), parameter :: scale='abfhABFH'
eliezer=INDEX(scale, s)
end function eliezer

Anuncios

»

  1. OFF TOPIC: He notado que utilizando la extensión “DONOTRACKME” de Abine. 3 compañias parecen estar siguiendome hasta acá las cuales son: Google Adsense, Google Analytics y Quantcast (y en Abrowser 18.0.1 señala un cuarto: Twitter Badge). Pense que te interesaría saberlo, aunque ignoro si el administrador del sitio pueda evitar a estas compañias rastreras. Un saludo.

    • He estado mirando pero ciertamente no tengo mucho control. Acepté que ocasionalmente pusieran publicidad en el blog, aunque no que rastrearan a mis lectores a través de dicha publicidad. He desactivado una casillas que indicaban dónde debería verse una lista de botones de compartir, pero aparentemente no había ninguno en esa lista, así que no debería tener ningún efecto. Cuéntame si ha cambiado algo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s