Autonomía digital y tecnológica

Código e ideas para una internet distribuida

El reconocimiento y los derechos de uso de material de terceros en las redes sociales

Imago voragine.net
• Por
Hay dos prácticas que veo a diario en las principales redes sociales: usar imágenes ajenas sin reconocer al autor y no decir a través de quién se ha llegado a una información concreta. En la primera creo que tiene mucho que ver el funcionamiento de las redes en cuestión: para que una imagen aparezca dentro de la información que se publica, hay que subir la foto a nuestra cuenta, no basta con enlazar al sitio donde la hemos encontrado. Esto hace que luego no se enlace al sitio donde la encontramos. La segunda se produce cuando se ha llegado a una información a través de algún contacto que se tiene en una red social, digamos Twitter, y se decide compartir esa misma información en otra, digamos Facebook. En este caso, cada red social funciona como un universo paralelo: en Twitter funciona la fórmula vía o v/, en Facebook el share que lleva implícito el reconocimiento. Pero algo encontrado en Twitter que se comparte en Facebook, o a la inversa, no tiene un protocolo tan claro de reconocimiento, a veces porque la fuente en Twitter no está en nuestros contactos de Facebook o no está en Facebook directamente. Ambas pueden considerarse como malas prácticas por la ausencia de reconocimiento hacia las fuentes de información. Sin entrar a valorar la gravedad del asunto, esta práctica me hace plantearme dos preguntas:

Cómo hacer una petición POST a un servidor usando cURL en un script PHP

Imago voragine.net
[actualizado el ] • Por Enlace permanente

cURL es muy útil para comunicarse con muchas APIs o más en general para automatizar peticiones y enviar datos entre servidores en internet. Cuando se usa cURL los datos se pueden enviar usando varios protocolos.

El siguiente snippet hace una petición a un servidor remoto enviando datos mediante el protocolo HTTP POST:

<?php
// abrimos la sesión cURL
$ch = curl_init();
 
// definimos la URL a la que hacemos la petición
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/test.php");
// indicamos el tipo de petición: POST
curl_setopt($ch, CURLOPT_POST, TRUE);
// definimos cada uno de los parámetros
curl_setopt($ch, CURLOPT_POSTFIELDS, "postvar1=value1&postvar2=value2&postvar3=value3");
 
// recibimos la respuesta y la guardamos en una variable
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$remote_server_output = curl_exec ($ch);
 
// cerramos la sesión cURL
curl_close ($ch);
 
// hacemos lo que queramos con los datos recibidos
// por ejemplo, los mostramos
print_r($remote_server_output);
?>

Antes de poder usar cURL hay que asegurarse que está instalado ;) Si no lo está, se instala y se reinicia el servidor web:

apt-get install php-curl
service apache2 restart

Copyright trolls

Se les conoce como copyright trolls y una parte importante de su negocio consiste en demandar a particulares, con el soporte de una potente estructura de abogados detrás: los particulares prefieren llegar a un acuerdo económico que enfangarse en un proceso legal.

Por ejemplo, la empresa Malibu Media, una productora de vídeos eróticos para internet, ha interpuesto el 38% de las demandas por incumplimiento de copyright en Estados Unidos en lo que va de 2014. Desde que empezó a demandar, allá por febrero de 2012, solo un caso ha llegado a juicio, el resto han sido arreglos económicos entre particulares y Malibu Media.

One federal judge has compared its lawsuits to an «extortion scheme» writing that many defendants, whether they committed copyright infringement or not, would rather settle than face the costs and potential embarrassment of fighting their cases. It is hard to see why anyone facing such a suit would choose not to settle: hiring a lawyer costs more than settling, and damages are exponentially higher in the event of a loss at trial. Plus, no one wants to be publicly accused of stealing pornography. To avoid embarrassment, many defendants may choose to settle before Malibu Media names them in a complaint.

The Biggest Filer of Copyright Lawsuits? This Erotica Web Site, The New Yorker.

Ciudad relacional: espacios comunes barnizados de matices quechuas y prácticas hacker

Bernardo Gutiérrez explica, en el artículo La ciudad de todos frente a la ciudad neoliberal, qué son los bienes relacionales y cómo configuran nuevos «espacios comunes», que no son ni privados ni públicos, que proporcionan una seguridad y un buen vivir a los que los construyen y los habitan, y que combinan modos de hacer ancestrales de la cultura quechua con otros trasladados de la cultura hacker:

Los bienes relacionales están profundamente relacionados a los espacios. A los espacios compartidos, a los espacios relacionales, a los espacios en red. Y encajan con el concepto de ciudad relacional que baraja la jurista María Naredo. Un modelo de ciudad relacional, fraguado con lazos intersubjetivos, tejido con capas de afectos: «el modelo ‘relacional’ propone formas de seguridad basadas en el encuentro, la relación y el diálogo. La seguridad, en el modelo relacional, pasa sobre todo por recrear el lazo social. No vaciar la calle, sino todo lo contrario: repoblarla de relaciones de vecindad, de buena vecindad también entre desconocidos. Para así poder confiar en que alguien nos va a echar una mano si nos ocurre algo en el espacio público, la vecina del quinto o el tendero de abajo».

Los pensadores Antonio Negri y Michael Hardt consideran que la ciudad es a la multitud lo que la fábrica era para la clase obrera. La ciudad es un espacio común donde la multitud fragua su invención biopolítica. Y donde los bienes relacionales, barnizados con matizes quechuas y con las prácticas colectivas de la ética hacker, fluyen desconfigurando el miedo.

Badges digitales: reconocimiento y certificación de aprendizaje para Ciudad Escuela

Imago voragine.net
• Por
Desde hace unos meses colaboro en el proyecto Ciudad Escuela, un espacio de aprendizaje con la ciudad como escenario pedagógico, un lugar donde organizar e intercambiar lo aprendido en diferentes experiencias auto-organizadas de acción urbana que se desarrollan en Madrid. La construcción de estos procesos urbanos se fundamenta en un conocimiento colectivo y distribuido que se va transfiriendo entre personas, entre proyectos, y aplicando a diferentes lugares. En cualquier caso escapa a los sistemas tradicionales de reconocimiento y certificación de lo aprendido. Por esta razón en Ciudad Escuela hemos incorporado los badges digitales como sistema de reconocimiento y certificación.

Cómo ordenar un loop de WordPress siguiendo varios criterios: multiple orderby

El parámetro orderby de la clase WP_Query de WordPress puede ser múltiple. Así podemos componerlo con múltiples criterios, siendo el primero el dominante.

Por ejemplo, si queremos ordenar un loop bajo los criterios title y menu_order, y que el título del post sea dominante, pasaremos los siguientes parámetros a WP_Query:

$args = array(
  'post_type' => 'page',
  'orderby' => 'title menu_order',
  'order' => 'ASC'
);
Contexto

Qué hacer si la plantilla single de un custom post type de WordPress no muestra el post

Hay veces que, tras configurar un custom post type, y definir la plantilla single para mostrarlo, ya sea la genérica single.php o una específica single-post-type-name.php, la URL de cualquier entrada de ese custom post type nos devuelve un error 404, si tenemos creada la plantilla 404.php, o la portada, el index.php, si no la tenemos creada.

Esto es fácil de solucionar, pero no es nada intuitivo: basta volver a guardar la Estructura de permalinks en el panel de admininstración, en la pestaña Configuración general, Estructura de permalinks.

Si queremos que esto se haga automáticamente, para que un theme recién instalado y activado no dé problemas, podemos incluir la función flush_rewrite_rules() en el archivo functions.php del theme después de crear el custom post type.

Cómo eliminar elementos del menú de administración de WordPress

Para eliminar elementos de los menús de administración de WordPress, y en consecuencia el acceso a determinadas secciones, se puede añadir el siguiente código al archivo functions.php del theme:

add_action( 'admin_menu', 'prefix_remove_dashboard_item' );
function prefix_remove_dashboard_item() {
  //remove_menu_page( 'index.php' );                  //Dashboard
  remove_menu_page( 'edit.php' );                   //Posts
  //remove_menu_page( 'upload.php' );                 //Media
  //remove_menu_page( 'edit.php?post_type=page' );    //Pages
  remove_menu_page( 'edit-comments.php' );          //Comments
  //remove_menu_page( 'themes.php' );                 //Appearance
  //remove_menu_page( 'plugins.php' );                //Plugins
  //remove_menu_page( 'users.php' );                  //Users
  //remove_menu_page( 'tools.php' );                  //Tools
  //remove_menu_page( 'options-general.php' );        //Settings
}

En el ejemplo de arriba estamos eliminando el acceso a los Posts y a los comentarios.

Cómo hacer copias de seguridad de bases de datos con PHP y mysqldump

Imago voragine.net
• Por
Los siguientes scripts de PHP llaman al programa mysqldump para hacer una copia de seguridad de una base de datos. La primera versión, básica, genera un archivo comprimido con gzip que aloja en la ubicación desde donde se ejecute el script. La segunda versión incorpora una salida para cada comando utilizado, para saber en el caso de que haya fallo dónde se ha producido; además utiliza bzip2 como compresor, más eficiente. Realizar copias de bases de datos mediante un script de PHP puede ser útil si no tenemos acceso SSH al servidor.