Link del día: El bug tracker más simple
Cuando exponemos a los usuarios la posibilidad de agregar bugs para revisar, es muy importante que este proceso no sea ni complicado ni difícil de lograr. Debe ser algo que cualquiera pueda entender, y que no sea una interrupción al flujo de la aplicación para que los usuarios puedan reportar también detalles que necesiten ser arreglados.
Si han visto la forma en la que Google Plus permite dar feedback, habrán notado que, aunque es una forma simple, involucra varios pasos que hacen del proceso algo “pesado”.
BugHerd se encarga de ambas cosas. En cuanto a la interfaz, sólo se trata de señalar algo en la pantalla y un texto para decir qué está mal al respecto. En cuanto al proceso, solo se trata de una interfaz con un botón y un campo de texto. Bastante simple, bastante claro.
Está de más aclarar que con un proceso tan simple el feedback de los usuarios será mucho. No hagan esto si no están dispuestos a prestar atención a lo que los usuarios quieren.
Por otro lado, BugHerd es pago, pero los precios no son altos para nada.
Soy un zorrinito buggeado.
Link del día: Arquitectura CSS
La idea me parece fantástica, pero la forma en la que se desarrolló, no tanto. La idea era, Scalable and Modular Architecture for CSS, una organización del código CSS de una aplicación para que fuera dividido en forma modular. De esta forma, habría determinados estilos base, y otros estilos pertenecientes a módulos que especificarían cosas extra, o modificarían detalles (aunque no deberían) de los estilos base.
Ahora, los estilos base se subdividen, a su vez, en estilos que tienen que ver con el layout, y los que no se llaman “base”. Por último, hay una cuarta clasificación que tiene que ver con estilos de estados, es decir, cuando algo está activado, cuando se encuentra deshabilitado, etc.
Si bien la idea está muy interesante, veo algunos puntos grises en cuanto se debe determinar qué estilo pertenece a qué. Hay reglas CSS particulares que van a ser seguramente pertenecientes a una de las anteriores categorías mientras otras no, pero podemos estar hablando de los mismos elementos en pantalla. Para poder lograrlo de forma precisa, debería tenerse demasiado cuidado y una gran cantidad de reglas que aplicarían a un determinado elemento. En ese sentido no se me hace demasiado natural, aparte de la necesidad de marcar de múltiples formas un mismo elemento (un id, varias clases).
Sin embargo, me parece un muy buen comienzo, y quisiera escuchar ideas, porque creo que esta arquitectura es una base muy poderosa para hacer de CSS complejo algo muy ordenado.
Soy un zorrinito estilizado.
Link del día: Trucos de consola de Chrome
De parte de la gente de HTML5 Rocks! tenemos un pequeño post con dos videos cortos (7 minutos cada uno), llamado 7 minute videos: Javascript Console Protips & newish DOM APIs, en donde Paul Irish nos cuenta sobre determinados truquillos que podemos utilizar para debuggear JavaScript, mayormente en Chrome (aunque dos de los trucos se aplican a Firefox y a Opera).
Personalmente no me encuentro desarrollando mucho JavaScript pero creo que adoptaré alguno de estos trucos, especialmente el $0 que hace las cosas terriblemente más fácil, junto con keys(), console.time() y copy(). A ver si puedo ponerlos en mi navaja suiza diara.
Soy un zorrinito loggeado.
"Run your own race" (Seth Godin)
Del blog de Seth Godin:
Corre tu propia carrera
El espejo retrovisor es una de las herramientas motivacionales más efectivas jamás creadas.
No hay duda que mucha gente acelera en el rostro de la competencia. Preguntamos “cómo le fue al resto de la clase?” Escuchamos a quién respira en nuestras nucas. Y descubrimos que la competencia a veces saca lo mejor de nosotros.
Pero hay una desventaja. Años atrás, durante mi nado de larga distancia (por Long Island Sound… agua fría, medusas, en todo el trayecto), la competencia estaba bastante dura. Desde el bote hasta la línea de comienzo había cientos de nadadores, estirándose, presumiendo, pavoneándose y calentandosé. Para el momento en donde tocamos el agua, todos estaban corriendo la carrera de los demás. El comienzo fue una explosión de ego y adrenalina. Veinte minutos después, la mitad de los participantes estaban exhaustos, con tres horas faltando.
Si vas a contar con la competencia para sacar tu mejor trabajo, entregaste el control sobre tu objeto más preciado. El verdadero logro viene de correr hacia adelante cuando nadie más ve un camino– y detenerse cuando la aceleración no te llevará a donde quieras ir.
Si eres dependiente de la competencia entonces estás contado con la calidad de esos que se muestran a sí mismo para determinar qué tan bien lo harás tú. Peor aún, te has inscripto para una carrera de empates terribles y falsos como la mejor forma de hacer tu trabajo.
La auto-motivación es y siempre será la forma de motivación más importante. Conducir con tus ojos en el espejo retrovisor es agotador. Es más fácil que nada medir tu performance contra la de los demás, pero si no te está ayudando con tu misión, detente.
Link del día: Cryptico.js
Ya alguna vez había mencionado una librería JavaScript para encriptar datos (jCryption), pero nunca está de más considerar otras alternativas. En este caso se trata de cryptico.js. El proyecto también es de Open Source y nos permite usar AES y RSA (o eso leí, pero la documentación sólo menciona RSA), y con una serie de métodos muy simples, nos permite operar con cadenas que queramos utilizar para transmitir de forma segura.
Lo curioso es que podemos generar claves especificando el tamaño de la misma, pudiendo ir desde una clave de 512 bits hasta 8192… pedazo de clave.
Este tipo de encriptación, por el hecho requerir una clave “insegura” para generar la clave RSA, no es inseguro de por sí. Recordemos que estamos hablando de encriptación asimétrica, de forma que por más que se tenga la clave generada, no hay inseguridad, puesto que es la otra clave (la que se queda con nosotros, la privada) la que se usará para desencriptar los datos.
Soy un zorrinito encriptado.
Link del día: If This Then That
IfTTT.com es un servicio que me atrevo a calificar de “maravilloso” en donde nos permiten integrar distintas redes sociales o servicios 2.0 en workflows que nosotros definiremos. Dependiendo del uso que le demos, puede sernos más o menos útiles.
Aunque su página de WTF lo explica, les daré un ejemplo de lo que se puede hacer para que lo vean de una forma simple, con unas reglas que uso yo:
- Cuando alguien me taggea en una foto en Facebook, que me envíe una copia de esa foto a mi email
- Cuando favoriteo un tweet, que me agregue ese tweet a Instapaper (yo uso los favoritos de Twitter para cosas que quiero leer después)
- Cuando le pongo una estrella a una entrada de Google Reader, que me la copie a Instapaper (yo uso las estrellas de GReader para cosas que quiero leer después)
- Cuando agrego un post a este blog, que lo twitee automáticamente
Y este servicio todavía está en Beta, me encantaría que agregaran en el futuro nuevos servicios y nuevas integraciones. La idea está fantástica y su utilidad es impresionante. Por supuesto, también podemos hacer interactuar muchos otros servicios (Craiglist, Evernote, Youtube, feeds, Facebook, Twitter, teléfono y sms!, linked.in, vimeo…).
Como extra, podemos utilizar “recetas” (tareas que ya otra gente ha programado) o crear las nuestras propias.
¿Para qué lo utilizarían ustedes?
Soy un zorrinito automatizado.
Link del día: Chirpy
Ayer hablé un ratito más con JH y siendo que no hay una sola charla que pueda tener con él en donde no aprenda algo, me comentó de su más reciente descubrimiento: Chirpy.
Chirpy es un proyecto open source de un plugin para Visual Studio que nos permite trabajar con archivos js, css, .less y T4 de forma casi nativa. Además, nos genera minimizaciones, hojas de estilo y transformaciones a medida que vamos guardando los archivos, casi “real time” a como estamos trabajando. Básicamente, nos permite extender la cantidad de herramientas que disponemos en tiempo de diseño.
No lo he probado personalmente, y no sé si es que introduzca algo de lentitud al entorno pero parece realmente convenir para tener una más variedad de posibilidades al momento de desarrollar, ahorrándonos tiempos de pruebas e integración.
Soy un zorrinito integrado.
Link del día: Combres, optimización ASP.NET
Justo ayer, rondando la medianoche, JH me envió por email un link a este proyecto llamado Combres 2.0, una librería para optimización de sitios ASP.NET. Recuerdan el caso de Minify para PHP o mod_pagespeed para Apache, este es el turno de ASP.NET.
Esta librería nos permite incluir recursos haciendo uso de ella, de forma que al momento de generar los links también se hacen referentes a una dirección que esta librería manejará, y se encarga del cacheo, compresión y minimizado de los documentos. La reducción de HTTP requests es, por lejos, una de las ganancias más útiles y menos costosas de lograr que nos ofrece.
En el sitio de CodeProject (en donde se encuentra alojado) se pueden ver varias de las aplicaciones y usos que tiene. Veré si prontamente puedo comenzar a utilizarla.
Soy un zorrinito optimizado.
Link del día: 100 formas de hacer que las cosas se hagan
Me encontré en Del.icio.us este interesante artículo (de agradable estética, dicho sea de paso), titulado 100 ways to get more done, que es un buen listado de muchos consejos. Aunque no me encuentro de acuerdo con todos ellos, una gran mayoría son realmente útiles e interesantes para investigar.
Leer estos me volvió a llevar al método de Inbox Zero de Merlin Mann, una técnica muy interesante de concentrarse para hacer lo que uno tiene que hacer cuando el email se convierte en una distracción constante. Creo que los consejos no aplican realmente a todo tipo de situación pero tiene un par de técnicas interesantes. Yo estoy comenzando a aplicarlo, con algunas variantes para que sea menos drástico al principio, pero todavía no puedo hablar de los resultados… aunque de comienzo sí puedo decir que ver el inbox vacío genera una satisfacción muy particular.
Soy un zorrinito productivo.
Link del día: Reportando bugs de browsers: qué, cómo y por qué
Este artículo de Smashing Magazine habla muy en detalle sobre la comunidad de desarrolladores de navegadores (una buena gran mayoría de ellos) y cómo es bienvenido el feedback de los usuarios para mejorar los navegadores mismos.
Explica un poco de qué forma se puede encontrar o aislar algo que creemos que es un bug, que también sirve para método de solución de problemas: una vez aislado el comportamiento no deseado siempre podemos idear un workaround (que es, de hecho, como surgieron muchos de los hacks vigentes para hacer las cosas funcionar cuando no funcionan como deberían). El resto del artículo nos explica cómo reportar este comportamiento, bajo las líneas básicas de: ver si realmente es inesperado lo que ocurre, ver si no fue reportado antes, y cómo hacer un buen reporte de bug.
Allí están también los links a los bugtrackers de los navegadores más importantes: Internet Explorer, Firefox, Opera, Webkit (Safari/Chrome) y Chrome. (Chrome también tiene otro para el sistema de Javascript, V8).
Para los investigadores, también es interesante poder revisar esos links para ver el estado de avance y noticias de implementaciones de cada navegador.
Soy un zorrinito buggeado.