Blasfemia no es nombre de mujer

Lo que son las modas. Ya casi no es posible encontrar a mujeres que respondan al nombre de Eufemia, pese a su buena intención, al menos etimológica: algo así como «la que bien habla». Si esto es así para la bella aunque algo anticuada Eufemia, imaginemos qué habría sido de la implausible pero cognada Blasfemia. ¿Cognada? La palabreja es el pariente listo de cuñado, con el que comparte origen —precisamente «pariente» en latín.

Cognadeando entonces, Blasfemia sería la que ofende cuando habla —y pobre Blas; aunque las etimologías más probables rebajan su ofensa a una inofensiva tartamudez. La acción de blasfemar quedaría entonces como una cuñada de difamar. También malhablada, aunque con un tema de conversación más bien monocorde: el olor a incienso, los golpes en el pecho, el no-trates-de-comprender-solo-créetelo.
Continue reading “Blasfemia no es nombre de mujer”

Derechos y favores

¿Quiere el PP eliminar el derecho a la copia privada? Este artículo de El País presenta el interesante debate entre David Cierco, director general para el Desarrollo de la Sociedad de la Información, y José Ignacio Echániz, secretario de Nuevas Tecnologías del Partido Popular. Mención aparte de la posible tendenciosidad del titular, el hecho es que refleja la cuestión lanzada al aire por Cierco: ¿qué implicaciones tiene la postura contra el canon del PP?

El derecho a la copia privada está unido a su compensación, y ésta se realiza a través del canon digital. Sólo de un modo delegado puede afirmarse que estar contra el canon supone propugnar la supresión del derecho de copia; es posible proponer modos de compensación diferentes (algo que, a día de hoy, el PP no ha hecho). Pero, suponiendo cierto el silogismo, ¿qué se propone desde la bancada popular? Explícitamente, nada.

Implícitamente, se debería proponer la única alternativa jurídica al derecho a la copia privada. Mención aparte de la anarquía —habría que ver cómo está tratada la propiedad intelectual en la jurisdicción congoleña, por ejemplo—, me refiero al Fair Use anglosajón, traducible como “uso aceptable de una obra bajo copyright”. Hay mucho que desbrozar al respecto, pero es posible estar de acuerdo en que, mientras que la copia privada supone un derecho del ciudadano, garantizado por el sistema legal, y que por tanto deja en manos de un eventual demandante la prueba de culpabilidad, el Fair Use es mucho menos específico: un contrato implícito entre un autor (o cualquier parte que tenga transferidos los derechos de copia, como distribuidores o sociedades generales de variopintos pelajes) y un consumidor. Un aspecto peligroso: en caso de demanda por violación de copyright, la defensa que invoque un “uso aceptable” de la obra en litigio tiene sobre ella el peso de la prueba, lo que obliga al demandado a gastar recursos en el proceso de los que puede no disponer, sobre todo en el caso de ciudadanos particulares.

Es precisamente en jurisdicciones donde el Fair Use es ley en las que pueden prosperar demandas contra los piratas de la mula, como en el caso Capitol contra Thomas, en el que una mujer de Minnesota, Jammie Thomas, fue condenada a pagar 220.000 dólares por compartir 24 canciones en la red KaZaA. Por motivos como éste, considero que el derecho de copia privada protege mejor los intereses del público en su conjunto; otra cosa es la idoneidad de la compensación o de su forma recaudatoria, y es a este campo al que habría que trasladar el debate, ya de por si suficientemente demagógico.

Los rincones oscuros de Unicode

¿Qué hay tras un símbolo? Puede ser tan sólo un conjunto de líneas, o la representación más sintética del sufrimiento humano. En los últimos tiempos se han escuchado voces, provenientes en su mayoría de las repúblicas bálticas y Polonia, clamando por la ilegalización de los símbolos de su pasado bajo la dominación soviética. ¿Prohibirán también Unicode, y en particular, su símbolo U+262D?

Unicode incluye el símbolo de la hoz y el martillo, dentro del grupo Símbolos Misceláneos. Una curiosa coincidencia lo sitúa en la tabla junto al símbolo de la paz (código U+262E), en el subgrupo de símbolos religiosos y políticos. Si prospera la propuesta de ilegalización en toda la Unión Europea, es probable que el código U+262D quede vacante. Después de todo, un símbolo comparable en la intensidad de las reacciones que genera, la esvástica nazi, no se encuentra por ninguna parte, muy probablemente debido al hecho de que es ilegal en Alemania, y se ha intentado que también lo sea en toda la Unión.

En cualquier caso, puede que Unicode no recoja la esvástica, ¡porque ya contiene tres! Se trata de los códigos U+0FCC (esvástica tibetana), en el grupo Tibetano, junto con U+5350 (ideograma chino “esvástica”) y U+534D (ideograma chino “esvástica inversa”), ambos en el grupo Ideogramas CJK Unificados.

Es imposible eliminar estos símbolos del catálogo de Unicode sin dañar su capacidad para representar el chino y el tibetano. También creo que no tiene sentido prohibir un símbolo fuera de un contexto orwelliano de limpieza lingüistica. Las personas libres deben poder recordar su pasado, glorioso o abominable, del modo más eficaz; debería ser un derecho y un deber como ciudadanos. Así pues, añadamos esa esvástica (la que se dibuja en una rejilla cuadrada de 5×5, girada 45 grados) a su lugar correcto en Unicode, y seamos intolerantes con la intolerancia, la única excepción que como sociedad democrática deberíamos admitir.

¿El BOE por RSS? (3ª parte)

And now, for something completely the same!

Una característica interesante de Pipes es que dispone de módulos de entrada. Éstos permiten introducir datos en el flujo de un pipe. Los hay de varias clases:

  • URLs (URL Input).
  • Números (Number Input).
  • Ubicaciones geográficas (Location Input).
  • Texto (Text Input).
  • Fechas (Date Input).

Usaremos uno de los más sencillos (el de texto) para darle vidilla al pipe que creamos antes. Para empezar, podemos clonarlo. En la pantalla de edición, basta con pulsar el botón Save a Copy. Así no romperemos nada. Sobre la copia, añadimos un módulo Text Input y lo configuramos con los valores:

  • Name: “titulo”. Este es el nombre del parámetro de entrada que estamos creando.
  • Prompt: “Palabra a buscar”. Aparecerá como nombre del módulo, y en su ejecución a través de la interfaz de Pipes.
  • Position: (en blanco, no es necesario). Determina el orden de aparición del parámetro en la interfaz de Pipes al ejecutar el programa, en el caso de que haya varios.
  • Default: “igualdad”. El valor por defecto del parámetro. Así empezó esta historia.
  • Debug: “ley”. Un valor para probar en la pantalla de edición. Buscando en el BOE, la palabra ley asegura muchas respuestas.

Conectamos la salida del Text Input con la entrada del valor del parámetro llamado dato[1] (no la del mismo parámetro, que si no la liamos) del primer URLBuilder. Sabemos que es ése y no otro porque hemos mirado la URL de búsqueda del BOE y, más o menos, la entendemos… ¡Y ya está! Podemos probar nuestro pipe, tras guardarlo y (opcionalmente) publicarlo aquí.

¿El BOE por RSS? (2ª parte)

En la entrada anterior observamos que RSSxl, como scraper, es un tanto limitado. Existen opciones mucho más avanzadas (y complejas), pero requieren disponer de acceso a un servidor, con lo que perdemos la ventaja fundamental de RSSxl: es online y no requiere configuración ni conocimientos especiales.

Pero introduzcamos una nueva herramienta, también online: Pipes, de Yahoo. En resumen, Pipes es un remezclador de fuentes RSS, aunque se le adivina mucho potencial. Verdad es que nada de lo que, hoy por hoy, se puede hacer con Pipes es imposible de otra forma; lo que consigue es una bajada espectacular de la barrera de entrada. Dicho de otro modo, con Pipes manipular fuentes RSS queda al alcance de cualquiera con curiosidad y dos dedos y medio de frente. Justo lo que necesitaba.

Aquí hay una explicación más detallada, y un ejemplo, cortesía de Microsiervos. Y ahora vamos con la receta.

Pipes va de unir módulos que hacen cosas con tubos (¿no era obvio?). Es un poco de filosofía Unix aplicada a la Web 2.0. Necesitaremos:

  • Dos módulos URLBuilder.
  • Un módulo Fetch.
  • Un módulo Regex.
  • El Pipe Output, que ya sale por defecto (representa el resultado final).

Ponemos en juego el primer URLBuilder. En su campo base, pegamos la URL de búsqueda que habíamos obtenido en el BOE usando la página de búsqueda avanzada (ésta). Inmediatamente, los diferentes componentes de la query aparecen desglosados en Query elements dentro del módulo, y separando nombres de valores. Reservamos.

Añadimos ahora el segundo URLBuilder. En su campo base, pegamos la URL que obtuvimos en el episodio anterior pulsando Generate RSS en RSSxl. Obtenemos el mismo resultado que en el caso anterior: los componentes de la parte de query se separan automáticamente. Nos interesa el parámetro pageurl, y el circulito que se ve a la derecha de su valor.

Las flechas rojas indican los extremos de la conexión que hay que hacer. El parámetro pageurl tendrá que tener como valor [url], es decir, la dirección completa que sale del primer URLBuilder.

Ahora insertamos el módulo Fetch, y lo conectamos con la salida del segundo URLBuilder. Éste es más fácil, ya que sólo hay una forma de hacer la conexión. Colocamos el módulo Regex y le prestamos un poco de atención.

Con la salida de Fetch ya tenemos la fuente RSS construida como en el episodio anterior. Lo que vamos a hacer con Regex es corregir el problema de los enlaces de los elementos RSS, que vimos que no funcionaban tal y como quedaban generados por RSSxl. Si miramos el elemento <link> de la fuente RSS generada, y lo comparamos con el valor que tendría que tener (el valor del atributo href del enlace “Más…” de los resultados de la búsqueda en el BOE), observamos que podemos obtener el segundo a partir del primero por medio de una expresión regular y una sustitución.

Las expresiones regulares son uno de los instrumentos más poderosos para el tratamiento y transformación de información textual que existen. También son complejas y dolorosas, sobre todo cuando se empieza con ellas. En este caso, usaremos Regex para sustituir en los elementos link de la fuente RSS aquello que encaje con la expresión:

search.php?.*(doc.php.*$)

Por:

$1

Si estás leyendo esto, no lo entiendes y tienes el más mínimo interés en la programación, te recomiendo que aprendas a manejar expresiones regulares. Hasta en los casos sencillos pueden resolver problemas que de otro modo serían difícilmente tratables (y desde luego, de un modo elegante y terso). La expresión que he usado se puede leer como:

Busca el texto “search.php?” seguido de un número indeterminado de caracteres, y terminado con “doc.php” y otra cadena de 0 a n caracteres. Guarda desde “doc.php” hasta el final en un registro numerado, que usaremos en la sustitución como $1.

Terminamos conectando la salida de Regex con Pipe Output. Sólo queda guardar el pipe que hemos creado y publicarlo si queremos. El que hemos creado aquí está disponible como BOEv1, y la fuente RSS que genera es ésta.

¿El BOE por RSS? (1ª parte y media)

Nota a mí mismo: No Reinventar la Rueda.

La tentación de lanzarse sobre el teclado y hacer algo es muy fuerte cuando se tienen claros los objetivos. Sin tener en cuenta lo divertido que puede llegar a ser. El caso es que ya existen fuentes RSS del BOE. Aquí están:

Todo eso está muy bien, pero ¿y lo bien que me lo estoy pasando?