Convertir SVG a PNG, en el navegador y listo para descargar

Ya estamos en un tiempo en el que virtualmente todos los navegadores más usados soportan SVG, por lo cual el uso de éste elemento en los sitios web se ha hecho más común, y aún más con la gran cantidad de librerías disponibles para trabajar con SVG hechas en Javascript, siendo D3.js una de las más populares.

Un detalle que pueden haber notado es que para el usuario es a veces un poco complicado descargar un gráfico hecho en SVG, algo que no pasaba con formatos de imágenes como JPG y PNG. Pero afortunadamente, hay una solución a éste problema, y no puede ser más fácil.

bandera argentina

Un pequeña muestra

Descargar graficos SVG como PNG

saveSvgAsPng es una librería en Javascript que permite descargar fácilmente gráficos SVG en formato PNG, lo cual es más que interesante y muy útil.

El uso es muy sencillo, es solo cuestión de incluir la librería en el sitio, y llamarla mediante la función saveSvgAsPng, con 3 parámetros, el primero es el elemento SVG, el segundo el nombre del archivo que se genera, y el tercero indica el factor de escala, o sea, el tamaño de la imagen respecto al del SVG.

Lo mejor de todo es que como funciona desde el navegador también pueden abrir cualquier SVG que tengan en su PC y utilizar ésta herramienta para convertirlo a PNG.

Mal día para ser el Community Manager de Telefónica

Telefónica publicó un tweet que generó un poco de controversia, el mismo decía:

¡Argentina tiene arte en todas partes! En calles, galerías y hasta en los trenes. RT si te gusta este tipo de arte.

Para los que no lo saben, el gobierno argentino ha estado luchando contra los graffitis en el transporte publico por bastante tiempo, todo comenzó cuando un grupo de vándalos realizó éste “arte” en los trenes recién llegados de China.

Obviamente hay que entender que existen muchas posturas al respecto, y es probable que quien publicó el tweet haya sido alguien que está a favor de los graffitis, lo cual no está mal, pero no es la mejor elección publicarlo desde la cuenta de una empresa.

telefonica trenes tweet

Me mandé una macana

El lugar donde falta arte es en la infraestructura de las empresas de telefonía, o mejor dicho, hay mucho arte y pocas inversiones.

 

ORDER BY avanzado para loops con WordPress (usando WP_Query)

Todo en WordPress es sencillo, hasta que empezamos a hacer cosas mas especificas, y no es porque no tengamos las herramientas para hacerlo, sino porque muchas veces no las conocemos y terminamos escribiendo algún código ninja para salir del paso, y no digo que esté mal, pero en incontables ocasiones terminamos reinventando la rueda, y no de la mejor manera.

reinventar la rueda

Reinventando la rueda

Uno de éstos casos es cuando usamos la clase WP_Query para crear loops customizados, o como deseen llamarlos. En ésta ocasión la idea es ahondar sobre el orden de los posts que se obtienen en el Loop.

WP_Query orderby

En éste ejemplo usamos el parámetro ORDER BY, y elegimos los parámetros “author” y “title”, o sea, ordenamos primero por autor, y si hay 2 posts que tienen el mismo autor, entonces el titulo es el que “decide” el orden.

$args = array( 'orderby' => 'author title', 'order' => 'DESC' );

$query = new WP_Query($args);

El resultado de ésta query es el siguiente:

SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish')  ORDER BY wp_posts.post_author,wp_posts.post_title DESC LIMIT 0, 10

Como ven, en la query generada vemos que se utilizan las columnas “post_author” y “post_title” en el ORDER BY, ésto tiene algunas limitaciones, como por ejemplo, que no se puede ordenar en forma ascendente en una columna y descendente en la otra.

Además, existen casos en lo que se requiere ordenar por día y por otra columna, por autor, por dar un ejemplo, en ése caso hay un problema, si usamos el “orderby” con el parámetro “date”, el segundo parámetro no tendría sentido (en la mayoría de los casos), ya que el parámetro “date” se corresponde con la fecha del post, que tiene incluido la hora, minutos y segundos, por lo tanto es raro que 2 posts tengan la misma fecha, aunque hay casos en los que sí, como cuando los posts fueron migrados a WordPress y los datos de la fecha estaban incompletos.

Filtro posts_orderby

Con el filtro “posts_orderby” lo que se logra es modificar la parte del ORDER_BY de la query que genera WP_Query, su uso es muy sencillo.

add_filter('posts_orderby', 'posts_orderby');

function posts_orderby($orderby_for_query) {
$orderby_for_query = "LEFT(wp_posts.post_date, 10) DESC, wp_posts.post_title ASC";
return $orderby_for_query;
}

$args = ' ';
$the_query = new WP_Query($args);
var_dump($the_query->request);

El resultado del “var_dump” es el siguiente.

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') ORDER BY LEFT(wp_posts.post_date, 10) DESC, wp_posts.post_title ASC LIMIT 0, 10

Como ven, el filtro modificó la parte del ORDER_BY con lo que añadimos en la funcion “posts_orderby”. La función LEFT, es una función de MySQL, lo que hace es obtener una subcadena de una cadena, en éste caso la idea es reducir la columna “post_date” para obtener solo la parte del año, mes y día, de ésa forma se logra orden por día, y por el otro atributo que se desee.

Si tienen varias queries, pueden “remover el filtro”, para evitar que afecte a otros loops.

remove_filter( 'posts_orderby', 'posts_orderby' );

Lo ideal, es llamar a ésta función después de crear la query.

Como aclaración, ésto también funciona en las queries por defecto de WordPress (en las que no es necesario crear una instancia de WP_Query).

Samsung participa del Ice Bucket Challenge con el S5 y nomina al iPhone 5s

El Ice Bucket Challenge es, bueno, algo raro, el objetivo es recaudar fondos para la investigación del ALS (ELA, en español), que es una enfermedad que afecta al sistema nervioso y termina provocando una parálisis. La idea es que cada persona que acepta el desafío y lo cumple, debe nominar a otras 3 personas.

Aprovechando la viralidad que tuvo todo ésto, Samsung de Inglaterra creó una publicidad en que se ve al Samsung Galaxy S5 cumpliendo el desafío, y luego de cumplirlo nomina a otros 3 smartphones, el iPhone 5s, el HTC One M8 y el Nokia Lumia 930.

El vídeo causó todo tipo de reacciones, aunque bien sabemos que YouTube es el reino de los trolls, muchos comentaristas parecían indignados con la empresa por usar ésta campaña con fines publicitarios. Por mi parte me parece una genial maniobra de publicidad, que no genera nada negativo para la causa, sino que todo lo contrario, el Ice Bucket Challenge nació para generar visibilidad, y lo está haciendo muy bien. Será cuestión de esperar si alguna de las otras empresas se suman, sería raro que Apple se quede con lo brazos cruzados.

reCAPTCHA está cambiando el rumbo

Para los que no lo saben, reCAPTCHA es un solución para combatir el SPAM y al mismo tiempo digitalizar texto, primeramente se hacia solo con libros, y dicha causa fue la que le dió gran parte de su impulso inicial, además de la facilidad de uso, por supuesto. Éste sistema nació en una facultad de Estados Unidos, y en 2009 fue comprado por Google, quien con el correr del tiempo le encontró una función que le vino como anillo al dedo a sus servicios Google Maps y Google StreetView.

Supongo los lectores mas ávidos ya se habrán dado cuenta de que es raro encontrar palabras pertenecientes a libros, y ahora la mayoría de los captchas contienen imágenes de direcciones pertenecientes a imágenes tomadas para Google StreetView.

recaptcha direcciones y numeros

Google, hay una dirección en mi captcha

En la imagen pueden ver un mezcla de ambas cosas, obviamente, con la facilidad que tiene la implementación de reCAPTCHA, nadie se va a quejar de que está ayudando a Google gratis, simplemente que la causa anterior era mucho mas noble.

También para mails

reCAPTCHA también cuenta con una versión que fue creada para proteger direcciones de correo electrónico, mediante la cual se debe resolver un captcha para poder acceder a una dirección de correo que se encuentra en una pagina, sin dudas una gran ayuda para evitar el SPAM.

Mientras tanto, sigamos colaborando con Google, después de todos, tener mapas gratis de todo el mundo no es una tarea sencilla.