Alpha's Manifesto

La madriguera de una insignificante figurita blanquinegra.

Link del día: Licencias de software

Gracias a un interesante post que me compartió el kangrejo, estuve leyendo un poco sobre las diferentes licencias de software que están por ahí. El artículo en cuestión es de OnSoftware, y el artículo se llama El Software libre y las licencias de uso.

Me resultó realmente muy curioso (y de hecho, no lo sabía) que una licencia de software libre no significa que seamos libre de utilizarla para cualquier proyecto. Por ejemplo, la licencia GPL nos obliga a liberar todo código en donde está utilizada esta licencia con esa misma licencia, con lo cual, si no fuera porque jQuery tiene también la licencia MIT, todo lo que hiciéramos con esta librería tendría que estar publicado como open source.

Wikipedia tiene un buen artículo sobre Comparison of free software licenses, que nos explica con cuáles licencias podríamos utilizar software en nuestros proyectos.

Recuerden que free software no es lo mismo que open source.

Soy un zorrinito licenciado.

Link del día: jQuery deconstructed

Otro post de jQuery, pero realmente vale la pena porque nunca nos dejamos de sorprender de las cosas que podemos hacer gracias a este framework. En este caso, para aquellos que quieran conocer exactamente cómo es que funciona o cómo es que efectúa ciertas tareas, se habrán encontrado con la complicación de que realmente es complejo en su funcionamiento interno. Para ello, la página de jQuery Deconstructed nos permite una vista más semántica y fácilmente entendible de sus funcionamientos internos. Si es que estuviéramos interesados, esta misma gente ha creado varios instructivos del interior de Prototype y de Mootools, otros frameworks bastante conocidos también.

Un trabajador tiene que conocer sus herramientas, cierto?

Soy un zorrinito javascript.

Link del día: Diccionario publicidad-español

Bueno, debo confesar que esto no es nada realmente innovador en cuanto al contenido. De hecho, debe de haber cientos de chistes de publicistas o de agentes de marketing dando vueltas que hagan alusión al mismo concepto, pero lo que me interesa mostrar es esta página: la página del Diccionario Publicidad-Español Español-Publicidad (gracias @Sofocles por el link) tiene un diseño muy particular. No me pareció extremadamente novedoso hasta que moví el puntero sobre el lado lateral derecho para ver que de esta forma se podía lograr algún tipo de scroll infinito simple de seguir.

Por supuesto, este tipo de técnicas tienen sentido de ser usadas cuando los elementos son muy similares y realmente no importa tanto el orden que tienen. Por eso Google lo implementó (sin flash esta vez) en su búsqueda de imágenes. Y además, en vertical (cosa que personalmente considero más natural). Para más detalles al respecto, pueden visitar el artículo de Google que lo detalla, o checkear algunos plugins de jQuery que se pueden usar para lograr eso mismo.

Soy un zorrinito infinito (quiere decir: “queremos vernos más importante de lo que somos”).

Link del día: ¿Cómo rankear contenidos?

Hace un tiempo me puse a investigar sobre cómo utilizar alguna técnica que me permitiera rankear contenidos. Es decir, tener algún feedback de parte de los usuarios para saber qué contenido gustaba más y cuál no tanto. “Copiémosnos de los grandes“, pensé yo, y busqué algún ranking de estrellas, al mejor estilo Youtube.

Encontré un plugin de jQuery llamado Star Rating, un sistema que basado en AJAX, y dos o tres imágenes, podemos tener un sistemita de ranking por estrellas muy simpático. Es muy personalizable y fácil de implementar, también muy fácil de acomodar según los distintos layouts que dispongamos para nuestro contenido, y finalmente, algo personalizable en funcionalidad también (por ejemplo, podemos hacer que muestre un promedio o un valor determinado, podemos hacer que sólo se pueda votar una vez o que se pueda cambiar el voto, o que se puedan votar varias veces, etc.)

Fue no mucho después que leí un artículo llamado Youtube Like Rating with jQuery & Ajax, y ahí fue en donde me dí cuenta que los grandes ya no utilizan el sistema de estrellas. Por si se dieron cuenta, Facebook tiene sólo un “Like” (o “Me gusta”, en español), y Youtube ahora tiene un “Like” y un “Don’t like”. ¿Por qué tan simplista?

La respuesta estaba en un artículo del blog oficial de Youtube, llamado Five Stars Dominate Ratings, en donde básicamente explican que de las 5 estrellas, rara vez alguien utilizaba la número 2, 3 y 4. Generalmente, si a alguien le gustaba un video, lo rankeaba como 5 estrellas, y si no le gustaba para nada, simplemente lo abandonaba o lo rankeaba con una estrella. ¿Y en el medio? Una minoría.

Y sobre ese mismo tema encontré un artículo muy interesante, también analítico de la gente de Steepster, Brewing a Better Rating System, en donde explican cuáles fueron las distintas aproximaciones que tuvieron para que la gente rankeara la información de su blog. Es interesante leer esta versión porque a la vez ellos creen que el sistema de sí/no no es del todo apropiado para expresar lo que uno piensa de un artículo, y entonces ellos permitieron una variabilidad en el puntaje.

¿Qué piensan ustedes? ¿Cuál sería la mejor forma de pedirle a alguien que opine, fácilmente, de un artículo/contenido que ustedes hayan generado?

Soy un zorrinito de feedback.

Link del día: Consejitos jQuery, MySQL, AJAX y PHP

Sabemos que los cuatro componentes mencionados (jQuery, MySQL, AJAX y PHP) deben de ser unos de los más comunes para generar aplicaciones web. Cada uno tiene una gran variedad de tutoriales o aproximaciones, podemos buscar y encontrar manuales, libros, ejemplos en abundancia.

Sin embargo, hay algo que resulta muy atractivo, que es lograr buenas aproximaciones, y con “buenas” me refiero a atractivas, usables y novedosas. Ya varios lo han logrado, como es el caso de Facebook, Twitter, Digg y tantos otros servicios con conceptos como el scroll infinito, la manipulación inline del contenido, interfaces avanzadas, etc. Muchos ejemplos pueden servirnos para hacer nuestra propia versión, y como ya alguien me dijo “fijate cómo lo hizo alguien que ya lo haya hecho”.

Para eso el artículo de hoy nos viene muy bien, es jQuery, Ajax, PHP and MySQL projects, de 9Lessons, un compilado de muchos artículos de sus blogs que muestran ejemplos de cosas comunes que querremos lograr, y que, por supuesto, podemos adecuar a nuestras necesidades particulares. Una suerte de cheatsheet pero algo extenso y complejo.

Soy un zorrinito web.

Link del día: jStorage

Seguro ya aprendimos que todo lo que comience con una jota minúscula viene relacionado con la familia de jQuery. Y aunque no sean todos los casos así, este sí lo es.

jStorage es un plugin de jQuery que nos permite aprovechar una de las bondades de HTML5, que es el uso de bases de datos a través de JavaScript. Si es que el navegador es viejo y el plugin no tiene la oportunidad de grabar nada, no hay errores de por medio, sino que simplemente al recuperar información veremos que no hay nada. Esto es bueno para lograr compatibilidad con muchos navegadores que puede que todavía no soporten HTML5 Storage o que sean versiones desactualizadas y, por ende, no lo soporte tampoco.

En el fondo es un tipo de almacenamiento de tipo key-value, algo a lo que seguramente estaremos acostumbrados desde el uso de cookies o parámetros, y siendo JavaScript e información de cliente, por supuesto, vamos a tener que tener muchos recaudos respecto a la seguridad y el tipo de información que vamos a guardar.

Lo bueno es que ya podemos proveer de mucha interacción del lado del cliente, y con datos semi-persistentes, lo cual nos amplia un poco el horizonte de opciones, en donde no necesariamente necesitamos ir al servidor para que la sesión no se pierda por accidente.

Soy un zorrinito almacenado.

Link del día: consejitos de jQuery para pr0s

Ayer Xyborg compartió un link llamado jQuery and general Javascript Tips to improve your code. No sólo me encantaron los consejos que ahí aparecían, sino que me encontré con que dicho artículo tiene una secuela, llamada More jQuery and General Javascript Tips to improve your code.

Ambos artículos son muy detallados y concisos, con un montón de items interesantes que se pueden utilizar a modo de check-list para tunear finamente el código que hayamos hecho en jQuery. Algunos consejos probablemente no los vayamos a utilizar en el momento, pero sabiéndolos, en el futuro podremos mejorar un poco nuestras prácticas. Por ejemplo, quizá no usemos la consola o no usemos el almacenamiento de datos en los objetos, pero conociendo eso, a futuro podríamos hacer las cosas de forma más simple.

Otros consejos los podemos aplicar siempre: utilizar siempre IDs en lo posible para las búsquedas (o anteponer un ID en la búsqueda de clases), otros están apuntados a la performance, a la elegancia de código o a la reutilización del mismo, otros son snippets que podemos reutilizar para nuestras necesidades y otros son consejos para proyectos que pueden volverse demasiado grandes para verificar fácilmente.

Quien trabaje con jQuery no tiene excusa para no conocer lo bueno de estos consejos.

Soy un zorrrinito JavaScript.

Link del día: Gráficos con Google

Hace un tiempo anduvimos en búsqueda de un buen plugin / framework / herramienta web que me permitiera utilizar gráficos en una aplicación web que nos encontrabamos desarrollando. Pasamos por varias opciones, algunas de las más interesantes siendo jqPlot para jQuery, o flot (también para jQuery), pero terminamos decidiéndonos por OpenFlashChart.

Sin embargo, encontré luego una opción muy útil para sitios estáticos que quizá necesiten solo un poco de HTML, o sitios dinámicos que no quieran incorporar la complejidad de generar gráficos en su código. Esta opción es la que Google Chart API ofrece. Y es tan fácil como hacer un link a una imagen que tenga ciertos códigos que van a determinar el gráfico que mostremos.

Opciones hay muchas, distintos tipos de gráficos, colores, opciones, aunque siendo imágenes, les falta algo que las otras opciones tienen, que es la interactividad. Pero nuevamente, si lo importante es el diseño simple y la tecnología a usar (o tiempo) es limitada, esta puede ser la mejor opción.

Soy un zorrinito graficado.