Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo obtener y mostrar la descripción, o caption, de las imágenes destacadas (post thumbnail) en WordPress

Imago voragine.net
• Por
WordPress ofrece la posibilidad de asignar una imagen destacada, post thumbnail en el argot de WordPress, a cada post, lo cual da mucha flexibilidad a la hora de mostrar el contenido y esta imagen de manera independiente. Para manejar las imágenes destacadas hay distintas funciones, pero ninguna de ellas permite obtener la descripción, o caption, que podemos añadir a la imagen en el administrador de WordPress. Para obtener la descripción, y otras informaciones de una imagen destacada, tenemos que recurrir a la función genérica get_post.

Función PHP para eliminar parámetros de una URL

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

En el hilo de comentarios de la entrada PHP Function: Remove a Query String Key, Value del blog de David Walsh hay un buen puñado de funciones que permiten eliminar parámetros de una URL. Una de ellas me parece una solución más sencilla que la propone el propio David.

La he modificado mínimamente para que ofrezca la posibilidad de eliminar más de un parámetro:

// Elimina los parámetros suministrador mediante la array $keys de la URL $url
function remove_url_query_args($url,$keys=array()) {
        $url_parts = parse_url($url);
        if(empty($url_parts['query'])) return $url;
                
        parse_str($url_parts['query'], $result_array);
        foreach ( $keys as $key ) { unset($result_array[$key]); }
        $url_parts['query'] = http_build_query($result_array);
        $url = (isset($url_parts["scheme"])?$url_parts["scheme"]."://":"").
                (isset($url_parts["user"])?$url_parts["user"].":":"").
                (isset($url_parts["pass"])?$url_parts["pass"]."@":"").
                (isset($url_parts["host"])?$url_parts["host"]:"").
                (isset($url_parts["port"])?":".$url_parts["port"]:"").
                (isset($url_parts["path"])?$url_parts["path"]:"").
                (isset($url_parts["query"])?"?".$url_parts["query"]:"").
                (isset($url_parts["fragment"])?"#".$url_parts["fragment"]:"");
        return $url;
}

Por ejemplo:

$keys = array("param1","param3");
$url = "http://example.org/?param1=value1&param2=value2&param3=value3";
echo remove_url_query_args($url,$keys);
// output: http://example.org/?param2=value2

Función JavaScript para detectar si una página web está siendo visitada desde un dispositivo móvil

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

Buceando en el código del theme Hero de WordPress, desarrollado por ThemeTrust he encontrado una función JavaScript muy sencillita para detectar si una página web está siendo visitada desde un dispositivo móvil.

No es completa, pero sí cubre los principales dispositivos móviles:

function isMobile(){
    return (
        (navigator.userAgent.match(/Android/i)) ||
        (navigator.userAgent.match(/webOS/i)) ||
        (navigator.userAgent.match(/iPhone/i)) ||
        (navigator.userAgent.match(/iPod/i)) ||
        (navigator.userAgent.match(/iPad/i)) ||
        (navigator.userAgent.match(/BlackBerry/i))
    );
}

Sobre el juicio de las principales discográficas mundiales contra Pablo Soto

David Bravo, abogado defensor de Pablo Soto, escribe un artículo en El Diario en el que cuenta el milagro que ha sido ganar un juicio a las principales discográficas mundiales:

El toque de atención que me dejó claro que ellos jugaban en otra liga fue cuando el mismo día del juicio, EEUU aprovechó para meter presión a España diciendo que éramos el país más pirata, obviamente para crear un clima favorable a la estimación de la demanda contra Pablo. Los medios de comunicación, expertos en fingir que han picado ingenuamente un anzuelo, hicieron la relación que se demandaba de ellos y en la misma noticia en la que hablaban de la queja de EEUU hablaban también de que, precisamente, y fíjense qué casualidad, ese mismo día se juzgaba en España a un importante pirata.

Nos hemos encontrado entre las toneladas de folios con un escrito presentado por la demandante, entiendo que por error, donde tras cada pregunta a sus peritos aparecían entre paréntesis las respuestas que debían dar. Nos hemos asustado al ver que el juez que iba a resolver el recurso impartía clases en un master coordinado por el abogado contrario y en el que alguna de las cuatro discográficas demandantes era empresa colaboradora. Hemos visto cómo periódicos como El País aprovecharon la condena a The Pirate Bay para decir justo el día que empezaba el juicio a Pablo que su caso era el The Pirate Bay español.

Ahora que todo ha terminado, David Bravo.

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