CSS 3 object-fit: cover y contain

Sin duda CSS3 nos va a permitir hacer cosas que hasta ahora eran bastante complejas de hacer, al menos si se querían hacer bien. Aunque todavía casi ningún navegador le da soporte (yo lo he probado con Opera 12a), me gusta mucho las funciones de object-fit que permiten, de forma sencilla, integrar imágenes o incluso vídeos dentro de un espacio determinado, o adaptarlo a unos tamaños a los que hasta ahora estábamos forzados.

He hecho la prueba en Internet Explorer 9.0, Google Chrome 16.0, Mozilla Firefox 9.0 y Opera 12a y sólo en este último he conseguido que esto funcione…

El objetivo es hacer lo siguiente (imagen basada en Opera 12a):

Object Fit: Contain

Básicamente es meter la imagen dentro de un espacio definido. En mi caso era meter la imagen en un cuadrado de 150px x 150px. Para ello tan sólo hay que ejecutar el siguiente código de CSS.

width: 150px;
height: 150px;
border: 1px solid black;
-ms-object-fit: contain;
-moz-object-fit: contain;
-o-object-fit: contain;
-webkit-object-fit: contain;
object-fit: contain;

Con esto conseguimos meter la imagen dentro del recuadro, como se ve en la imagen.

Object Fit: Cover

En este caso tenemos algo similar, pero lo que hace es adaptar la imagen del alto o ancho (la menos de ellas) al ancho o alto propuesto por el código… esto significa que siempre habrá un sitio por el que sea más grande si la imagen no es cuadrada.

width: 150px;
height: 150px;
border: 1px solid black;
-ms-object-fit: cover;
-moz-object-fit: cover;
-o-object-fit: cover;
-webkit-object-fit: cover;
object-fit: cover;

Podéis ver un ejemplo en real en la página de ejemplo de CSS3 object-fit que he hecho para probar o visitar la página del W3C donde se explican más detalles sobre object-fit.

deSEO para 2012

Puede que sea cosa mía, pero haciendo una revisión de los cambios de 2010 y 2011 me doy cuenta de que el SEO se ha estancado… estancado en cuanto a que los buscadores van metiendo cosas pero no van muy relacionadas tanto con la evolución del SEO como lo ha estado haciendo entre 2005 y 2010.

Sí, ya sé que el año pasado entró en nuestra vidas un animal muy entrañable como es el Panda, un algoritmo que ha hecho mucho daño a un determinado tipo de sitios, sitios que básicamente “no hacían las cosas bien” (y entiéndase bien por lo que a Google se le pasa por el forro). Eso sí, cada vez más vemos unos resultados más personalizados para cada usuario o para cada territorio (ciudad y país), incluyendo cada vez más información externa (llámese OneBox) y que, más que SEO lo que hacen es destacar sus propios servicios (que no digo que sea malo, simplemente hacen que ya no sea una cuestión de SEO propiamente dicho). Quizá el único elemento más de SEO que podríamos encontrar es el SEO local (principalmente con Google Places) para un determinado tipo de búsquedas.

Y esto me lleva también a ver los sitios web que hablan de SEO. Personalmente ya no sé qué publicar porque, novedades en sí mismas pocas hay… de tanto en tanto hay alguna variación, pero, como decía, exceptuando el Google Panda, el SEO de hoy en día se resumen en un concepto: trabajar bien. Esto es un concepto muy amplio ya que implica desde la concepción del sitio web, la calidad de los contenidos, la arquitectura de la información, el SEO, el WPO… aunque, todos estos elementos, si se tiene un equipo que hace bien su trabajo está solucionado. Eso sí, el equipo debe pensar en una idea principal: tienes un único usuario, Google, y el resto de visitas son “daños colaterales” (millones en muchos casos).

Los últimos clientes y trabajos que me han ido saliendo en estos últimos meses la verdad es que no me han dado ninguna faena propiamente dicha de SEO. Todo ha sido revisión de los elementos básicos de los sitios (robots, sitemaps, etc…), un poco de arquitectura de la información (porque la mayoría de sitios estaban mal organizados) y posteriormente un poco de mejoras de rendimiento tanto de servidor como de sitio web.

Como digo, a mi Panda me ha afectado poco porque los sitios que gestionaba directamente estaban todos inmunizados a las malas prácticas, y a aquellos a los que les ha afectado les digo claramente que son malos desarroladores web, son malos SEO y son despreocupados por tener un buen producto. Y siento decírselo a aquellos que confían ciegamente en sus desarrolladores o su equipo no experimentado en desarrollar buenos productos de Internet. Aunque sin duda lo que más miedo me da es esta calma por parte de los buscadores. Ahora mismo tenemos 2 grandes motores para occidente (Bing y Google) y uno que dará guerra poco a poco desde oriente (Yandex). Conseguir enlaces de forma artificial cada vez se ha convertido en un deporte de riesgo si se gestiona de forma incorrecta, la tecnología e infraestructura ha dejado de ser un commodity para tener que dedicársele bastantes recursos y el desconocimiento de los estándares como HTML, CSS o el propio RFC2616 comienza a ser arriesgado.

¿Y ahora qué? Pues la verdad es que no tengo ni idea… hace años cuando iba a charlas y eventos siempre hablaba de 2012 como aquel año en el que veríamos cambios… y la cuestión es que hasta este año he visto como todos los motores han ido evolucionando y evolucionando pero, suponiendo que la respuesta por parte de Bing, Google y Yandex a la cuestión de ¿y a partir de ahora qué? que seguramente tendría la respuesta de “a mejorar la calidad de resultados”, no tengo muy clara cuáles podrían ser otras posibles respuestas. Seguramente hechos como que gente del departamento de búsquedas de Google está emigrando hacia otros productos de la compañía es algo bastante significativo. ¿Será el secreto del SEO la adaptación al resto de productos de los distintos buscadores? Probablemente si tienes un negocio local tendrás que enfocarte cada vez más a Google Places, si vendes a Google Merchant, aplicar microdatos para que tus resultados de búsqueda “se vean más bonitos”… pero, perdonadme que tenga mis reticencias a llamar a eso SEO, porque eso ya no es optimizar para resultados de búsqueda, eso, eso habrá que renombrarlo a “otra cosa” que todavía no sé qué es.

Ahora hace poco más de 15 años que Internet empezó a ser y crecer para convertirse en lo que es hoy en día… y tengo la sensación (o quizá es un deseo) de que este año vamos a comenzar a ver lo que va a ser la nueva Internet, una nueva Internet que va a pasar de ser proyectos de startup a ser sitios web establecidos, con abuelos como Google, Amazon o eBay y otros jóvenes como Twitter o Facebook que han venido para quedarse.

Este año 2012 (a mediados de año) también hará 15 años que mi vida comenzó a ir paralela a la red de redes… como digo, no sé si es que me hago mayor, como Internet, pero creo que es el momento del cambio.

Herramientas para desarrolladores en Firefox 12

Uso Firefox el 95% del tiempo que paso con un navegador de Internet, y es que creo que como navegador es muy buena la integración con herramientas y su funcionamiento en el desarrollo de sitios web. Dicen que Chrome funciona mejor, pero a mi la verdad es que ha llegado un momento en el que es todo tan simple que no acabo de entenderlo.

Hace días que ya tenemos disponible Firefox 12 (en versión alpha, que conste) y, además de estar disponible para máquinas de 64 bits (algo que me atrae bastante) hay cambios bastante importantes en lo que herramientas para desarrolladores se refiere.

NOTA: si quieres ver las últimas versiones para probar, puedes visitar la página de Firefox Nightly version.

Antes de entrar en detalle sobre los cambios que va a traer el propio navegador, me gustaría destacar la colección de Mozilla de herramientas para desarrolladores. Aquí podemos ver algunos addons como Firebug, la Web Developer, Colorzilla o Show IP.

Lo primero que sorprende es que el F12 ha dejado de funcionar para dividirse en varias herramientas y combinaciones de teclas, como se puede ver en el menú de opciones.

Web Console

Es lo más parecido a la antigua consola que teníamos antes. Básicamente controla la red y los errores generados por CSS y JavaScript. De cada una de las peticiones podemos ver su “ficha” con las cabeceras, cookies y respuesta por parte del servidor, además de, petición a petición, los errores que van generando cada una de ellas a la hora de maquetar la página.

Inspect

Quizá es de las herramientas sobre las que más cambios visibles se pueden ver. La opción de inspección de los distintos bloques del código de la web se han hecho mucho más sencillos y en la parte inferior podemos ver en path completo, en la parte inferior el código HTML y en la parte lateral el CSS que se le está aplicando. Además, cuando vayamos seleccionando el código, veremos la etiqueta y clases que se le están aplicando de un vistazo rápido.

JavaScript Scratchpad

Aunque muy simple, esta pantalla nos permitirá hacer y revisar funciones de JavaScript para analizarlas. Como digo, por ahora bastante sencillo.

Style Editor

Aunque en este caso me parece una herramienta muy sencilla sin duda es bastante potente en cuanto puedes hacer cambios en tiempo real sobre los CSS y añadir o eliminar estilos cargando otros ficheros. En aquellos sitios que usen varios ficheros CSS puede venir muy bien para crear la hoja de estilos en tiempo real e ir viéndola aplicada en todo momento.

En estos momentos todavía quedan 4 versiones hasta que se lance la 12, por lo que es de prever que esto es sólo el principio en cuanto a cambios que se van a implantar en el navegador, cambios que hace tan sólo un par de años tal vez ni pensábamos tener como herramientas integradas.

Ancho de banda, latencia y tenerla grande (la conectividad)

El tamaño importa, ¿pero cuánto? Pues las pruebas que se han hecho dicen que tener una conexión a 5 Mbps es suficiente para que un sitio web funcione de forma bastante razonable siempre desde el punto de vista del cliente, claro. Y es que Internet, como en muchas ocasiones dice Jaime Ferré es como un milagro que funcione, pero tiene limitaciones físicas, porque la velocidad de la luz es la que es.

En muchas ocasiones hablamos que una web ha de cargar rápido y que cargue rápido significa que ha de tardar entre 1,5 y 2,5 segundos. En este tiempo hemos de incluir el tiempo desde que el usuario pulsa “Intro” en su navegador hasta que la página se muestra por pantalla. Y en la mayor parte de veces nos paramos a revisar los pequeños detalles de la carga del propio sitio: que si unir y minimizar CSS y JavaScript, hacer la menor cantidad de peticiones, CSS Sprites… pero hay una limitación física sobre la que la mayor parte de gente no piensa: la distancia.

Imagina que tienes tu servidor web en Estados Unidos, en Boston, por ejemplo. Tú vives en Madrid. Cada vez que hagas una petición a tu sitio web has de ir de tu casa al centro de datos de Madrid, de este a París, Londres, Nueva York, Boston, y volver. En total más de 7.700 kilómetros de cable con varios routers de por medio. Teniendo en cuenta que la velocidad de la luz por cables de fibra óptica es de 200.000 km/h (a diferencia de los 300.000 km/h que tiene en el vacío), sólo por la distancia de cable ya tenemos un tiempo de espera de 38ms, que en ida y vuelta son el doble, 76ms. Y este tiempo es sin contar con los routers y la electrónica que pueda haber, sin tener en cuenta pérdidas y suponiendo que la conexión es directamente con fibra de punto a punto yendo un bit a la máxima velocidad. Esto significa que, prácticamente, 1 décima de segundo se pierde en la conectividad en sí.

Ahora pongamos un ejemplo más práctico. Tenemos una imagen en el servidor que pesa 25KB. Hacer la petición a esa imagen desde Madrid hasta Boston implicaría unos 45ms en la petición, otros 45ms en la respuesta y unos 5ms en traer la información. Esto sería con una conexión de 5 Mbps sin pérdidas. Esto significa que de los 95ms que tarda en hacerse todo el proceso, más del 90% de la información se reduce a tiempos de latencia de la red.

Y ahora que sabes esto… ¿aún te preguntas porqué tu sitio web carga lento? Recuerda que es importante que tus servidores estén cerca (físicamente) de tus usuarios, y si no puede ser así, utilizar sistemas como BGP para conseguirlo.

Navigation Time API en Google Analytics

Una de las API más interesantes que nos trae el W3C en los últimos tiempos y que han implementado algunos navegadores es la Navigation Time API. Si queréis ver una prueba de datos, podéis probar la página de Navigaton Timing de la Guía de WPO.

Pero claro, estos datos dependen de los usuarios y en la mayoría de ocasiones no los tenemos disponibles… así que, ¿por qué no añadirlos a Google Analytics? Sí, como he dicho no estarán en todas las páginas y tendremos información parcial ya que sólo está disponible en algunos navegadores, pero al menos tendremos cierta información.

La información que propongo guardar es la siguiente:

  • DNS: es el tiempo que se dedica a hacer peticiones DNS.
  • Connect: es el tiempo que se dedica a procesos propios de TCP; esto puede implicar colas en peticiones por problemas de paralelización.
  • Petición: es el tiempo que se tarda desde que se hace la petición (enviamos el primer byte) hasta que se devuelve el contenido (recibimos el último byte).
  • DOM: es el tiempo que tarda el navegador en maquetar la página con sus elementos.
  • Carga: es el tiempo que se tarda desde que se empiezan han recibido los contenidos hasta que la página se ha cargado completamente (incluye el tiempo DOM).

Una vez tenemos caros los distintos tiempos que vamos a tomar como medida, vamos a guardarlos como Eventos en Google Analytics.

function getPerformanceTiming() {
  var timing = window.performance.timing;
  dns = timing.domainLookupEnd - timing.domainLookupStart;
  connect = timing.connectEnd - timing.connectStart;
  peticion = timing.responseStart - timing.connectEnd;
  dom = timing.domComplete - timing.domLoading;
  carga = timing.loadEventEnd - timing.responseEnd;
  return {
    dns, connect, peticion, dom, carga
  };
}

Y ahora que ya tenemos estos datos guardados en variables, tan sólo hay que enviarlos a Google Analytics mediante las funciones de eventos:

window.onload = function() {
  if (window.performance && window.performance.timing) {
    var tiempos = getPerformanceTiming();
    _gaq.push(["_trackEvent", "Navigation Timing API", "DNS", undefined, tiempos.dns, true]);
    _gaq.push(["_trackEvent", "Navigation Timing API", "Connect", undefined, tiempos.connect, true]);
    _gaq.push(["_trackEvent", "Navigation Timing API", "Peticion", undefined, tiempos.peticion, true]);
    _gaq.push(["_trackEvent", "Navigation Timing API", "DOM", undefined, tiempos.dom, true]);
    _gaq.push(["_trackEvent", "Navigation Timing API", "Carga", undefined, tiempos.carga, true]);
  }
};

Aunque todavía supongo que se puede mejorar bastante, aquí os dejo un ejemplo de datos:

SEO básico a tener siempre controlado

El SEO puede evolucionar, puede cambiar para bien o para mal, pero hay algunos elementos que nunca podemos despreocupar y sobre los que tenemos que tener siempre un control absoluto.

robots.txt

Es básico tener el fichero de robots.txt bien controlado. Primero, ha de existir. Segundo, debe tener como mínimo la línea User-Agent: *. Tercero, debería tener siempre, al principio de todo, la línea indicando el Sitemap.

Código 404

Todo dominio tiene que tener su propia página de error. Si entras en example.com/0123456789 debe devolver una página (sin hacer redirecciones o cosas intermedias) un código 404. La página resultante es recomendable que tenga el diseño del resto del dominio.

rel-canonical

Hoy en día es casi obligatorio que todos los sitios usen el rel-canonical. Y también es importante que este sea calculado en base a los datos internos, y no simplemente replicar lo que llega por URL. Eso sí, hay que poner atención es nunca combinarlo con el meta-noindex.

sitemap.xml

Si queremos que los buscadores descubran nuestros nuevos contenidos hay que tener un fichero de sitemap.xml que informe de los nuevos contenidos. Este fichero, si es un nuevo sitio o se cambia la arquitectura o se rehace el sitio, está bien que se le mande el 100% de las URL de contenidos. Repito, contenidos, nada de categorías y similares… eso ya lo descubre el propio robot de rastreo. Una vez veamos en Webmaster Tools que ya hay un 80%-90% indexado, es mejor sólo pasarle un 10% de los últimos contenidos generados (por fecha inversa).

Paneles para Webmasters

Hay que estar dado de alta (recomendada la verificación por DNS) en Google Webmaster Tools, Bing Webmaster Tools y Yandex Webmasters. Es muy recomendable configurar el sistema de alertas por correo. Como detalle, Yandex, una vez pasa un tiempo, da muy buena información con respecto a errores de rastreo.

Rich Snippets

Si tienes la posibilidad de incorporar elementos del Schema en tu sitio web, ponlos. Por ejemplo libros, películas, eventos, negocios locales

Títulos, Descripciones…

Cada página del sitio ha de tener su propio título “title”, su propia descripción “meta-description” y sus propias palabras clave “meta-keywords”.

Contenidos

Como siempre, contenidos únicos, intentando no paginarlos…

Sé que es básico, pero a partir de aquí ya todo es seguir con elementos no tan básicos. Lo siguiente es revisar la arquitectura de la información y evitar contenidos duplicados.

Pirámide de Maslow del internauta

El ser humano tiene unas necesidades, y eso es lo que el Señor Maslow puso en formato gráfico en una pirámide… pero Internet también tiene su público y esas necesidades no son tan personales sino que te las da el sitio web que estás visitando. Y es que la pirámide del internauta es muy sencilla.

En la parte más baja de la pirámide, en la base encontramos algo muy simple: el sitio web ha de funcionar. Y es que si un sitio web no funciona, apaga y vámonos. Ya digo que puede parecer una tontería, pero que un sitio web esté caído creo que es de las cosas más duras que te puede pasar. De ahí todo el tema del “cloud” y la virtualización, distribución de cargas, etc… es importante que un proyecto en Internet siempre esté en línea. En resumen: infraestructura.

El siguiente escalón es el de conseguir que el sitio cargue rápido. Si ya has conseguido que el usuario llegue a tu sitio web, es importante que tenga una sensación de velocidad para que se sienta a gusto y pueda navegar por el sitio con tranquilidad. Esto, ya personalmente, partiendo de unas conexiones a Internet mínimas. Para mi, por ahora, me baso en conexiones de 3 Mbps, algo mínimo en todos los países de Europa, Norte América y parte de Sud América. En resumen: Web Performance Optimization.

El siguiente escalón, ya por encima de la mitad, tenemos algo que hará que el proyecto sobreviva: que sea útil. En Internet hoy en día prácticamente tenemos de todo, pero lo que nunca sobra son herramientas y servicios de utilidad. La mayoría de los sitios web de Internet que duran más de un año es porque son útiles, ya sea como Google (buscador), Facebook (red social), Twitter (comunicación), Amazon (compras), eBay (mercadillo / subastas)… ejemplos hay muchos, proyectos que duren mucho no tantos.

Y para acabar, en lo alto de la pirámide, encontramos algo que puede ser un poco feo de decir, pero el sitio web ha de ser “cool”. Está bien que sea útil, que cargue rápido, que funcione, pero una vez tienes todo eso… ¿no debe ser cool? Debe tener ese punto que lo haga accesible a todos pero a la vez con su punto de exclusividad. Recuerdo cuando tener una cuenta en GMail era difícil y si lo tenías, “molabas”. Lo mismo pasa en Facebook, que como todo el mundo lo tiene, tú has de tenerlo, tiene aplicaciones, permite hacer muchas cosas…

  1. “cool”
  2. utilidad
  3. velocidad
  4. ¡está en línea!

Y ahora que has visto esa pirámide… ¿en qué escalón está tu sitio web y qué escalón quiere tu usuario?

La nueva UX de Google

Google está cambiando su interfaz al igual que está reajustando sus productos. Google Plus no es una red social, sino que como su nombre indica es un “plus” al propio Google. Y todo esto llega después de que Brin y Page se hayan puesto de nuevo a dirigir la empresa.

Han pasado 15 años desde que una idea de algoritmo llegase a la cabeza de ambos y se convirtiera en realidad, primero creando el buscador genérico, luego creando verticales, luego con la compra de DejaNews tener información de terceros que poder almacenar, que si correo electrónico, que si servicios por aquí y por allí… A los trabajadores se les dejaba un 20% de su tiempo para hacer inventos, pero, no nos engañemos, Google, a diferencia de Yahoo! o Microsoft “siempre” ha sido el buscador y no sus servicios.

Es por eso que ha llegado este cambio de mentalidad, el que los usuarios de Google realmente conozcan el potencial de todos sus productos, muchos desconocidos para la mayoría. Y aquí es donde la renovación de la interfaz llega y se centra en 2 cosas: que haya una integridad entre todos los productos de forma que pases de uno a otro sin problemas y no te sientas distinto, y un foco en los contenidos, en el rendimiento de dichos productos, en que si vas a por correo, el correo sea lo que carga mejor.

Hace años que esto mismo lo comentaba con mucha gente, Google tiene buenos productos pero no es capaz de darlos a conoce porque su página de inicio es un simple cajetín de búsqueda, algo que ha condicionado mucho el crecimiento de todo aquello que no son búsquedas. Esto pasa a diferencia de Microsoft con MSN, punto de inicio, aunque ellos el problema lo tienen en las marcas, en los continuos cambios de nombre. Yahoo! en esto ha sido mucho más inteligente, y aunque no lo parezca es la que más está haciendo por conseguir volver a ser lo que fue hace muchos años. Ha conseguido despreocuparse, una vez más, de las búsquedas para centrarse en los contenidos y servicios.

Y no sé si habréis probado el nuevo Yahoo! Mail, pero a mi me ha dejado sorprendido. Creo que le faltan algunos detalles pero sin duda eso sí es una interfaz clara y, sobre todo, rápida, algo que últimamente hecho de menos en Google Mail. Microsoft, por su parte, está más focalizada en que las cosas funcionen aunque vaya un paso más atrás, intentando integrar todo en su sistema operativo, algo que creo que hace bien, ya que si hasta ahora Windows había tenido problemas de monopolio, con la irrupción de Android o iPhone creo que ahora las cosas van a cambiar, y Windows 8 es la demostración de ello.

Yendo a la parte más, no sé cómo llamarlo…, a mi la nueva interfaz de Google me gusta, los colores me dan bastante igual, porque al final el objetivo que busco es la funcionalidad. Las cosas están donde deben esta, la pantalla es clara, sacan el máximo provecho de la tecnología incluso avanzándose hasta sacar el máximo partido posible de HTML 5 en el que se han involucrado mucho.

Se acerca 2012 y vamos a ver movimientos interesantes. El objetivo ya no se centra tanto en las búsquedas sino en conseguir que los usuarios utilicen los servicios alrededor de esas búsquedas, sobre todo para la integración social. Bing comenzará a hacer uso de Facebook para personalizar sus resultados. Google lo está haciendo con Google Plus. Twitter seguramente mejorará su infraestructura de búsquedas para convertirse en otro competidor por la información de última hora.

Y es que hasta ahora todos los grandes portales han estado mu enfocados en ofrecer nuevos servicios, en ser los primeros en lanzar la nueva herramienta que cambiará el mundo, pero eso está cambiando, ahora el foco es potenciar el uso de todos los servicios de un mismo proveedor y mejorar los servicios existentes eliminando aquello que es poco útil. El objetivo de crear unas nuevas experiencias de usuario es clara, la de optimizar la rentabilidad del usuario.

CardSorting, ordenar contenidos

Cada vez que he de lanzar un sitio web me hago ciertas preguntas, y las principales son la organización de la arquitectura de las direcciones URL y la de la de los contenidos. Y es que estas dos cosas son las que van a marcar el futuro del sitio web a todos los niveles, desde el propio sitio, la tecnología, el SEO, etcétera.

Y sin duda un concepto muy importante a la hora de organizar los contenidos es el del cardsorting, sistema de organización de tarjetas que permite conocer cómo funciona la cabeza de un usuario a la hora de organizar la información; esto significa que cada uno de nosotros tiene una forma de organizarse la información, pero que debemos intentar generalizarla para nuestros usuarios.

La forma más sencilla para organizar estos contenidos sería la de utilizar unos cuantos “post-its”, cada uno de los cuales tiene contenidos, etiquetas, etc… y el usuario ha de agruparlos según el considere que se deben agrupar, y luego asignarle un nombre a cada uno de esos grupos de “post-its”. La idea es que sean siempre contenidos finales y que sea el usuario el que cree las categorías.

Esto seguramente nos hará ver que la información para algunos usuarios se puede organizar por fechas, por precios, por tipos, por… cada persona tiene unas necesidades y una organización mental. Es por esto que el cardsorting se puede plantear de dos formas: abierto o cerrado.

El sistema de cardsorting abierto es aquel que permite al usuario organizar la información como le parece, es decir, la categorización y/o clasificación la crea el usuario. En cambio, el cardsorting cerrado es aquel en el que el usuario ha de agrupar los contenidos en unas categorías o clasificaciones que se han establecido previamente. Para hacerse una idea más sencilla, si tuviéramos un contenido en WordPress, las categorías serían un cardsorting cerrado y las etiquetas serían un cardsorting abierto.

Al final, podemos resumir que el cardsorting es el sistema por el cuál los usuarios esperan encontrar los contenidos, secciones o funcionalidades de un sitio web.

smushit.net, una API simple de smushit

Si te dedicas al mundo de Internet es muy probable que entre las aplicaciones que utilices se encuentre la de comprimir imágenes… pero el uso de algunas herramientas a veces se hace muy complejo o necesita de servidores con algunas configuraciones extrañas. Es por eso que, como yo mismo me he encontrado en esa situación y soy bastante asiduo a la herramienta de Smush.it de Yahoo! he querido simplificarme la vida y, de paso, os hago partícipes de ello a vosotros.

Que conste que es una simple prueba y que puede fallar (como todo en la vida). El servicio es smushit.net y lo que hace es simplificar la API existente eliminando los datos poco útiles.

El objetivo es que introduzcas por parámetro la URL de la imagen que quieres optimizar y te devuelva la URL de la imagen optimizada. De esta forma con un simple código en PHP, ASP o lo que te apetezca podrás hacer un “fopen” o un “fread” y te devolverá la URL que luego podrás descargar o hacer lo que te apetezca.

El ejemplo es sencillo http://smushit.net/?img=http://smushit.net/Tux.png.

Se aceptan sugerencias y demás… aunque, como digo, es una prueba por entretenerme a pasar el rato.